Subject Re: [IB-Architect] Index B-Tree implementation
Author Jim Starkey
At 07:10 PM 12/6/00 +0100, Toni Martir wrote:
>One question about index implementation:
>
>Some database systems implement the b-tree indexes making it bidirectional,
>so a bidirectional index uses less space than two unidirectional indexes.
>
>Why Interbase doesn't implements bidirectional indexes?
>- Because the sql standars says
>CREATE [ASCENDING|DESCENDING] INDEX ON ...?

Four reasons. First, there is no reason to implement them. Second,
Firebird uses prefix compression to increase density and fanout of
indexes, significantly reducing the cost of index scans, but making
a reverse scan a real pain. Third, Firebird is careful write (database
on disk is always valid and consistent), which is probably impossible
with bidirectional indexes. Fourth, the physical access strategies
for the Firebird on-disk structure are deadlock free, which can't
be implemented with bidirectional indexes.

Other than that, just laziness.

Jim Starkey