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
{
|