From: Claudio V. C. <ro...@us...> - 2001-05-19 06:35:42
|
Update of /cvsroot/firebird/interbase/jrd In directory usw-pr-cvs1:/tmp/cvs-serv23596 Modified Files: dyn_def.e dyn_mod.e Log Message: no message Index: dyn_def.e =================================================================== RCS file: /cvsroot/firebird/interbase/jrd/dyn_def.e,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -U3 -r1.1.1.1 -r1.2 --- dyn_def.e 2000/08/03 20:49:59 1.1.1.1 +++ dyn_def.e 2001/05/19 06:35:39 1.2 @@ -19,6 +19,9 @@ * * All Rights Reserved. * Contributor(s): ______________________________________. + * 19-May-2001 Claudio Valderrama - Fix oversight for ODS10, storing + * char length in UDF param is possible. + * */ #include <stdio.h> @@ -1011,10 +1014,14 @@ VOLATILE BLK request = NULL; JMP_BUF env; JMP_BUF* VOLATILE old_env; +USHORT major_version, minor_original; tdbb = GET_THREAD_DATA; dbb = tdbb->tdbb_database; +major_version = (SSHORT) dbb->dbb_ods_version; +minor_original = (SSHORT) dbb->dbb_minor_original; + old_env = (JMP_BUF*) tdbb->tdbb_setjmp; tdbb->tdbb_setjmp = (UCHAR*) env; if (SETJMP (env)) @@ -1093,9 +1100,16 @@ break; /* Ignore the field character length as the system UDF parameter - table has no place to store the information */ + table has no place to store the information + But IB6/FB has the place for this information. CVC 2001. */ case gds__dyn_fld_char_length: - (void) DYN_get_number (ptr); + if (ENCODE_ODS(major_version, minor_original) < ODS_10_0) + (void) DYN_get_number (ptr); + else + { + X.RDB$CHARACTER_LENGTH = DYN_get_number (ptr); + X.RDB$CHARACTER_LENGTH.NULL = FALSE; + } break; default: Index: dyn_mod.e =================================================================== RCS file: /cvsroot/firebird/interbase/jrd/dyn_mod.e,v retrieving revision 1.2 retrieving revision 1.3 diff -U3 -r1.2 -r1.3 --- dyn_mod.e 2001/04/13 15:33:31 1.2 +++ dyn_mod.e 2001/05/19 06:35:40 1.3 @@ -2041,7 +2041,7 @@ *********************************************************** * * Functional Description: - * Checks to see if the given field already exists in a relation + * Checks to see if the given domain already exists ***********************************************************/ BLK request = NULL; BOOLEAN retval = FALSE; |