-- File: DBIndexScan.mesa
-- Created by: Suzuki, November 20, 1980 10:29 AM
-- Last edited by:
-- Suzuki, November 24, 1980 11:01 AM
-- Cattell, 7-Jul-81 10:18:39

DIRECTORY
DBCommon USING[DBPage],
DBStorage USING[Selection, FirstLast, IndexScanHandle],
DBIndex USING[Page, RealIndexHandle];

DBIndexScan: DEFINITIONS = {

InitScan: PROC;

FreeScan: PROC;

FreeScanHandle: PROC [s: DBStorage.IndexScanHandle];
-- Maintains the LIFO queue

CreateScanHandle: PROC [
r: DBIndex.RealIndexHandle, y: DBStorage.Selection, start: DBStorage.FirstLast, page: DBCommon.DBPage,
index: CARDINAL] RETURNS [DBStorage.IndexScanHandle];

ManipulateScanIndex: PROC[page: DBIndex.Page, after: CARDINAL, f: PROC[DBStorage.IndexScanHandle]];

PutScanIndex: PROC[r: DBIndex.RealIndexHandle, p: DBIndex.Page];
-- "r" was an empty tree, and just became to have one entry. "p" points to the first page.
-- If there is a IndexScanHandle, change values.

ScanForNullTree: PROC [q: DBIndex.RealIndexHandle];
-- The tree pointed to by q because empty. Change all the IndexRealHandle
--so that if they point to this index, their page fields are Null

}.


Change Log

Added PutScanIndex and ScanForNullTree
Suzuki: November 24, 1980 11:01 AM