From: Ann W. H. <aha...@ib...> - 2001-05-26 19:58:25
|
At 11:16 PM 5/24/2001 -0400, Claudio Valderrama C. wrote: >Hello, can anybody reproduce <a bug involving rdb$dbkey >with our latest sources or FB-0.95? > >I get "invalid column reference", a good description of what happens, That's one of the changes we picked up from the Borland tree. Here's a description of the changes the Borland team released with their "certified" build. - example databases are now owned by sysdba Not a big deal. We should make sure that the qli message database is no longer owned by Brett Bandy. - rdb$dbkey in the select list of a query with GROUP BY was dereferencing a null pointer Claudio - here's the answer to your question. In DSQL pass1.c, the routine invalid_reference did not have code to handle rdb$dbkey. That routine is called to validate the selected columns in a query that includes a group by. Thus any reference to an rdb$dbkey in a grouped query would involve trying to generate blr for a null node - works very badly. - a NULL state in a GROUP BY item would crash the server The changes to evl.c (moving a call to EVL_make_value so it's handled only if the value isn't null) should fix this. - initialize shadow_file to NULL_PTR _before_ calling SETJMP This is part of the SDW_start routine in code that handles potential errors. It probably corrected the error that a missing shadow file would keep a database from being opened. - don't let the server use environment variables ISC_USER and ISC_PASSWORD Make the ISC_set_login routine conditional - works for classic, not for shared server. There's a second change to utl.c that moves an sprint out of conditionally compiled code - no functional change. - if the server dies, ibguard was not able to restart the server In the CNTL_main_thread routine of cntl_guard.c, there is a large if statement that checks that everything is going well then and, if so goes into a long wait. Unfortunately the next line of code assumes that it was the wait that failed, not one of the six conditions in the if. The new code adds a status which is cleared iff the if test passes. - changing build number and license strings - some cosmetic changes Boring stuff. - fix ods 9 problem The code in ini.e adjusts the system metadata structures if the ODS version is less than 10. It removes references to two fields (RDB$PRECISION and RDB$CHARACTER_LENGTH) from RDB$FUNCTION_ARGUMENTS). Regards, Ann www.ibphoenix.com We have answers. |