From: Mark O. <sky...@us...> - 2001-04-23 14:22:51
|
Update of /cvsroot/firebird/interbase/isql In directory usw-pr-cvs1:/tmp/cvs-serv29553 Modified Files: extract.e Log Message: Fix bug of BLOB being returned by value To be sincere, this code doesn't cater for the RETURNS PARAMETER syntax but it would require more surgery than I'm willing to do, since I'm sick of isql so I started my own metadata extraction utility based on IBO that does this trick and others. Claudio Valderrama via MOD Index: extract.e =================================================================== RCS file: /cvsroot/firebird/interbase/isql/extract.e,v retrieving revision 1.5 retrieving revision 1.6 diff -U3 -r1.5 -r1.6 --- extract.e 2001/01/08 16:07:18 1.5 +++ extract.e 2001/04/23 14:22:48 1.6 @@ -2596,9 +2596,18 @@ /* If a return argument, save it for the end, otherwise print */ +/* +// Changed the following to not return a BLOB by value. +// To be sincere, this code doesn't cater for the RETURNS PARAMETER syntax but +// it would require more surgery than I'm willing to do, since I'm sick of isql +// so I started my own metadata extraction utility based on IBO that does this +// trick and others. +// Claudio Valderrama (by way of) MOD 23-Apr-2001 +*/ + if (FUN.RDB$RETURN_ARGUMENT == FNA.RDB$ARGUMENT_POSITION) sprintf (return_buffer, "RETURNS %s %s %s", type_buffer, - ((SSHORT) abs (FNA.RDB$MECHANISM) == FUN_reference ? "" : "BY VALUE"), + (((SSHORT) abs (FNA.RDB$MECHANISM) == FUN_reference || FNA.RDB$FIELD_TYPE == BLOB) ? "" : "BY VALUE"), (FNA.RDB$MECHANISM < 0 ? "FREE_IT" : "")); else { |