Subject Re: [Firebird-Architect] Bi-directional indexes
Author Arno Brinkman
Hi,

>> Another proposal:
>> - Remember left-sibling page and current-page, key, recordnumber
>> - <time expired>
>> - Next record asked which is before the buffered exploded page.
>> - Fetch left-sibling page and check if next-page is current-page
>> - if found ---------------------------------------------------------|
>> - not found, lookup key, recordnumber from index-root-page |
>> - Find key, recordnumber <--------------------------------------|
>
> What if <key, recnum> is garbage collected at this time ?

It will automaticly find the next record so that should be no problem.

> And how about unique indices in which duplicate chains are not sorted
> by recnum and new recnums added at the end of the chain ?

Yep, that's the one causing trouble, because here we can't find our next record if the current
record has been removed and we do an lookup. We need to think about how we can store duplicate keys
by recordnumber even if it's unique.

Regards,
Arno Brinkman
ABVisie

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Firebird open source database (based on IB-OE) with many SQL-99 features :
http://www.firebirdsql.org
http://www.firebirdsql.info
http://www.fingerbird.de/
http://www.comunidade-firebird.org/

Support list for Interbase and Firebird users :
firebird-support@yahoogroups.com

Nederlandse firebird nieuwsgroep :
news://newsgroups.firebirdsql.info