Subject firebird crash confirmation
Author Mihai Chezan
Hi all,

I want to get a confirmation, before posting this on firebird bug
tracker, for a bug that makes the firebird server crash.
I discovered this bug while working on an ERP sotftware by running a
select query. The server crashes every time I run the query. I've
manage to simplify the query and to produce a simple script that kills
the server when executed.

Tested on:
OS: Windows 2000 Profesional SP4
DB: Firebird-1.5.1.4481-Win32.exe (with default configuration)
CPU: AMD Athlon XP 2200+
RAM: 512MB

and

OS: Windows 2000 Profesional SP4
DB: Firebird-1.5.0 (with default configuration)
CPU: AMD Athlon XP 2200+
RAM: 512MB

and

OS: Windows 2000 Profesional SP4
DB: Firebird-1.5.1.4481-Win32.exe (with default configuration)
CPU: Intel Celeron 2GHz
RAM: 256MB

The message from system log:
Application popup: fbserver.exe - Application Error : The instruction
at "0x0048ae4e" referenced memory at "0x00000001". The memory could
not be "read".

Click on OK to terminate the program
Click on CANCEL to debug the program

-------------

This is the script:
/* Table: TB1 */
CREATE TABLE TB1 (
TB1_ID INTEGER NOT NULL,
CREATE_DATE TIMESTAMP NOT NULL);

commit;

/* Table: TB2 */
CREATE TABLE TB2 (
TB2_ID INTEGER NOT NULL,
QUANTITY NUMERIC (18, 3) NOT NULL,
TB1_ID INTEGER);

commit;

/* TB1 data */
INSERT INTO TB1 VALUES (1, '10/26/2004');
INSERT INTO TB1 VALUES (2, '10/27/2004');

/* TB2 data */
INSERT INTO TB2 VALUES (1, 3, 1);
INSERT INTO TB2 VALUES (2, 5, 1);
INSERT INTO TB2 VALUES (3, 1, 2);
INSERT INTO TB2 VALUES (4, 7, 2);

commit;

/* this is the select query that kills the server */
SELECT
TB1.CREATE_DATE,
'xxx' xxx,
SUM(TB2.QUANTITY)
FROM
TB1
INNER JOIN TB2
ON TB2.TB1_ID = TB1.TB1_ID
group by
1,
2

---------------
Runing the select kills the server, but if I run:
SELECT
TB1.CREATE_DATE,
'xxx' xxx,
SUM(TB2.TB2_ID)
FROM
TB1
INNER JOIN TB2
ON TB2.TB1_ID = TB1.TB1_ID
group by
1,
2

or

SELECT
TB1.CREATE_DATE,
CAST('xxx' AS CHAR(3)) xxx,
SUM(TB2.QUANTITY)
FROM
TB1
INNER JOIN TB2
ON TB2.TB1_ID = TB1.TB1_ID
group by
1,
2

everything it's ok (the server doesn't crash).

If you need more information please feel free to ask.