From: Patrick J. P. G. <pat...@us...> - 2000-10-13 05:15:16
|
Update of /cvsroot/firebird/interbase/jrd In directory slayer.i.sourceforge.net:/tmp/cvs-serv14341/interbase/jrd Modified Files: cmp.c Log Message: Modified Files: interbase/jrd/cmp.c 10/13/2000 Fix for bug #116579; Generators in computed by columns will return wrong results. If, in an ODS 10 or greater database, the gen_id function is included as a part of a computed field and another field references it or it is referenced in a select statement, the database will become corrupted. This problem was introduced with the change to 64 bit generator values. The COMPUTED BY clause is being parsed correctly, correct BLR is stored in the database, and this BLR is correctly converted into execution nodes by jrd/evl.c During jrd/cmp.c 'copy' processing, called as a part of the pass1 routine, this execution node is modified replacing the correct generator number with incorrect values. These changes fix that problem by causing the correct node-copying routine to be invoked. pat Index: cmp.c =================================================================== RCS file: /cvsroot/firebird/interbase/jrd/cmp.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -r1.6 -r1.7 *** cmp.c 2000/08/30 00:53:40 1.6 --- cmp.c 2000/10/13 05:15:12 1.7 *************** *** 2497,2500 **** --- 2497,2501 ---- case nod_gen_id: + case nod_gen_id2: /* 20001013 PJPG */ node = PAR_make_node (tdbb, e_gen_length); node->nod_count = input->nod_count; |