Subject Re: Some benchmarks about 'Order by' - temporary indexes?...
Author m_theologos
--- In Firebird-Architect@yahoogroups.com, Vlad Horsun <hvlad@...>
wrote:
>
> > Firebird 2 RC4 SS.
> > (when will be ready the final release? we need it because the
1.5.3
> > has a bug in the index engine...).
>
> RC5 will be released soon.
>
> What bug in 1.5.3 index engine do you mean ?
>
> Regards,
> Vlad
>

In short, the Firebird doesn't index correctly dates smaller than 17
Nov
1858
affecting all the operations based on the bad index.

To reproduce it, do the following:

CREATE TABLE T1 (DOCDATE DATE);

INSERT INTO T1 VALUES('1/1/1600');
INSERT INTO T1 VALUES('1/1/1900');
INSERT INTO T1 VALUES('1/1/1850');
INSERT INTO T1 VALUES('11/15/1858');
INSERT INTO T1 VALUES('11/16/1858');
INSERT INTO T1 VALUES('11/17/1858');
INSERT INTO T1 VALUES('11/18/1858');

SELECT * FROM T1 ORDER BY DOCDATE;

- everything will be ok -

Now do the following:

CREATE INDEX IDX1 ON T1(DOCDATE);

SELECT * FROM T1 ORDER BY DOCDATE;

You'll have:

DOCDATE
11/16/1858 00:00:00
11/15/1858 00:00:00
01/01/1850 00:00:00
01/01/1600 00:00:00
11/17/1858 00:00:00
11/18/1858 00:00:00
01/01/1900 00:00:00

PLAN(T1 ORDER IDX1)

Fixed in 2.0