Subject serious array bug crashes server
Author woodsplitter.rm <woodsplitter@rocketmail
I just posted the following bug report to SourceForge, and thought I'd
also post it here for good measure (please forgive me if that's a faux
I've encountered a serious array-related bug in Firebird, which is
easily replicable on versions 1.0, 1.0.2, and the latest 1.5 alpha
( Firebird 1.5 Alpha 5). The consequences of the bug differ
between 1.0.x and 1.5.

I'm writing a unit test for the array support that I just added to
kinterbasdb (a Python driver for Firebird). My test code is designed
to test arrays of every data type that can be stored as an array
element, and to test every possible number of dimensions for each data
type (1 to 16, according to the documentation), with random sizes for
each dimension. Upon running a preliminary version of this unit test,
I noticed that the following statement crashes the Firebird server
create table "tbl_271" (col
The dimension sizes in that statement are just the random sizes
generated by my test code; the simpler statement below has the same
create table blah (col smallint[2,2,2,2,2,2,2,2,2,2,2]);
The key is the number of dimensions: a 'create table' statement that
specifies more than 10 dimensions crashes the server (Firebird 1.0.x),
or is accepted but not applied (that is, the table is not created) on
(Firebird 1.5a5). Also, I have not observed that the data type of the
array elements has any effect--SMALLINT, INTEGER, CHAR, FLOAT, and
TIMESTAMP all behave the same way, at least.

This crash has nothing to do with the client library that I'm writing;
it's a server problem, and is replicable with isql and IBOConsole.

Here are the specifics of my system configurations:
1. Windows 2000 SP3 / Firebird SuperServer 1.0.2
2. Windows NT 4 SP6a / Firebird SuperServer Firebird 1.5
Alpha 5 (I also observed the bug earlier on this machine with Firebird