|Subject||Re: [Firebird-Architect] Bi-directional indexes|
"Ann W. Harrison" <aharrison@...> wrote:
> If its right sibling pointer is the old page(2), we do a right handoffSounds promising. I don't see any issues so far.
> to the old page, and check the generation number(3). If it has not
> changed, we try the instant handoff again. If that succeeds, fine, if
> that fails we return to (1) and continue the loop until it succeeds or
> exits at points (2) or (3).
> If the sibling pointer is wrong at point (2) or if the generation number
> has changed at point (3), we go back to the top of the index and
> reestablish our location using the saved key and record number. As Arno
> pointed out, if that particular value has been garbage collected, the
> index lookup stops at the next record. Retrieval starts with the next
> record to the left.