<> <> <> <<>> <> <> <> <> <> <> DIRECTORY DBCommon, DBIndex; DBIndexMod: CEDAR DEFINITIONS = BEGIN OPEN DBIndex; ReplaceKey: PROC [p: Page, key: IndexKey, at: CARDINAL]; <> MoveEntriesToLeftLeaf: PROC [from, to: Page, nentries: CARDINAL]; <> <> <> MoveEntriesToRightLeaf: PROC [from, to: Page, nentries: CARDINAL]; <> <> <> MoveEntriesToRightLeafAfter: PROC [from, to: Page, nentries: CARDINAL]; <> <> InsertTheFirstLeafEntry: PROC [page: Page, key: IndexKey, value: LONG CARDINAL]; <> InsertTwoEntriesToEmptyPage: PROC [page: Page, first: LONG CARDINAL, key: IndexKey, second: LONG CARDINAL]; <<"page" is empty and an internal node.>> <> MoveEntriesToRightInternal: PROC [from, to: Page, key: IndexKey, nentries: CARDINAL]; <<"from" is to the left of "to">> <<"key" is the dividing key between from and to>> <<"nentries" are moved (returns if 0)>> MoveEntriesToLeftInternal: PROC [from, to: Page, key: IndexKey, nentries: CARDINAL]; <<"from" is to the right of "to">> <> <<"nentries" are moved (0 => no-op)>> SplitEntriesToRightPage: PROC [from, to: Page, at: CARDINAL] RETURNS [IndexKey]; <> <<"From" is to the left of "to", and "to" is empty.>> <> MoveRightAndInsert: PROC [from: Page, to: Page, after: CARDINAL, at: CARDINAL, key: IndexKey, value: LONG CARDINAL] RETURNS [CARDINAL]; < between from[at] and >> <> <>> <> SlideLeafAt: PROC [p: Page, index: CARDINAL, key: IndexKey, value: LONG CARDINAL]; <>> <> RemoveFromInternal: PROC [page: Page, deleting: CARDINAL] RETURNS [State]; <> RemoveFromLeaf: PUBLIC PROC [page: Page, deleting: CARDINAL] RETURNS [State]; <> <> <> SetLinks: PROC [left, new: Page]; <> RemoveLinks: PROC [page: Page]; <> END. Changed by Willie-Sue on February 15, 1985 <>