File: DBIndexScan.mesa
Copyright © 1985 by Xerox Corporation. All rights reserved.
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
Willie-Sue, February 15, 1985 3:40:24 pm PST
Widom, September 4, 1985 9:19:33 pm PDT
Donahue, May 22, 1986 1:20:31 pm PDT
DIRECTORY
DBCommon USING[DBPage, Segment, TID],
DBStorage USING[Selection, FirstLast, IndexHandle, IndexScanHandle],
DBIndex USING[Page, RealIndexHandle];
DBIndexScan: CEDAR DEFINITIONS = {
IndexHandle manipulation
CreateNewRealIndexHandle: PROC [tid: DBCommon.TID];
Creates a RealIndexHandle at the head of LRU queue, and set tid.
GetOldRealIndexHandle: PROC [x: DBStorage.IndexHandle]
RETURNS [DBIndex.RealIndexHandle];
DestroyIndexHandle: PROC [q: DBIndex.RealIndexHandle];
DeleteHandle: PUBLIC PROC [q: DBIndex.RealIndexHandle];
Deallocates the IndexObject
FinalizeIndexHandle: PROC [s: DBCommon.Segment];
Scan handle operations
InitScan: PROC;
FreeScan: PROC [seg: DBCommon.Segment];
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
Changed by Willie-Sue on February 15, 1985
made Cedar, added tioga formatting