|
From: SourceForge.net <no...@so...> - 2004-09-05 18:46:54
|
Bugs item #521947, was opened at 2002-02-24 05:35 Message generated for change (Settings changed) made by dimitr You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=109028&aid=521947&group_id=9028 Category: DSQL >Group: Fixed v1.5 >Status: Closed >Resolution: Fixed Priority: 5 Submitted By: odahan (odahan) Assigned to: Nobody/Anonymous (nobody) Summary: server crash on simple query Initial Comment: Firebird 1 rc2 : Step 1: Following query doesn't work (between can't be used against datatype...) : SELECT COUNT(*) FROM ODDSKCAT1 O WHERE (SELECT COUNT (*) FROM ODDSKCAT2 O2 WHERE O2.DISKID=O.DISKID) BETWEEN 21 AND 100 Step 2 : query is corrected as follow (adding a cast) : SELECT COUNT(*) FROM ODDSKCAT1 O WHERE CAST( (SELECT COUNT(*) FROM ODDSKCAT2 O2 WHERE O2.DISKID=O.DISKID) AS INTEGER) BETWEEN 21 AND 100 ... Step 3 : Run and ... Crash server (AV message then the server is killed by Windows). The crash is immediate (no wait, so I thing the problem is in parsing the query). Database context : about 130 Mb gdb file, 3 tables, the biggest is oddskcat2. DISKID field is an Integer, primary key of table ODDSKCAT1, a unique index on this field exists in ODDSKCAT2. OS: Windows 95 osr2 2 Questions : 1/ why the first syntax is not understood ? 2/ why a so hard crash with the "cast" ? ---------------------------------------------------------------------- Comment By: Claudio Valderrama C. (robocop) Date: 2002-02-25 07:04 Message: Logged In: YES user_id=62823 1.- The "between" treatment is tricky. We probably will consider this limitation as designed. 2.- The engine isn't prepared to deal with the sub- expression in such combination. It should allow or reject it instead of crashing. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=109028&aid=521947&group_id=9028 |