DIRECTORY DBCommon USING[DBPage], DBCache USING[CacheHandle], DBStorage USING[TupleHandle]; DBStorageInternal: CEDAR DEFINITIONS = BEGIN TupleTree: TYPE = REF TupleTreeRecord; TupleTreeRecord: TYPE = MACHINE DEPENDENT RECORD[ rootPA: DBCommon.DBPage, depth: CARDINAL, tid: TID, segment: DBCommon.DBPage, padding: ARRAY[0..13) OF CARDINAL_ ALL[0] ];--TupleTreeRecord ReadIndexObject: PROCEDURE[t: DBStorage.TupleHandle, result: TupleTree]; WriteIndexObject: PROCEDURE[t: DBStorage.TupleHandle, val: TupleTree]; TID: TYPE = LONG CARDINAL; SegmentIDOfTuple: PROCEDURE[t: DBStorage.TupleHandle] RETURNS[--segmentID--DBCommon.DBPage]; TIDOfTuple: PROCEDURE[t: DBStorage.TupleHandle] RETURNS[TID]; MakeTupleHandle: PROCEDURE[tid: TID, cacheHint: DBCache.CacheHandle _ NIL] RETURNS[DBStorage.TupleHandle]; ReleaseTupleHandle: PROCEDURE[t: DBStorage.TupleHandle] = INLINE { }; END.--DBStorageInternal CHANGE LOG Created by MBrown on May 2, 1980 9:54 AM Changed by MBrown on May 8, 1980 10:09 AM Changed by MBrown on May 8, 1980 1:15 PM Changed by Suzuki on May 8, 1980 1:35 PM Changed by MBrown on May 9, 1980 10:06 AM Changed by Suzuki on August 17, 1980 11:10 AM Changed by MBrown on 17-Jun-81 10:35:17 Changed by Cattell on September 14, 1983 Changed by Willie-Sue on February 15, 1985 ¦File: DBStorageInternal.mesa Copyright c 1985 by Xerox Corporation. All rights reserved. Last edited by MBrown on 17-Jun-81 10:35:42 Last Edited by: Cattell, September 29, 1983 4:34 pm Willie-Sue, February 15, 1985 11:15:29 am PST This interface contains all storage level private types and procedures that are used in implementing the index section of the storage level. By using this interface, the index section avoids the need to import DBStorage. This is the part of DBBTree.Tree that is permanently stored in the database. B-Tree root page address B-Tree depth TID of tuple that holds permanent copy of this object Segment containing this B-Tree (source of pages) SIZE must exactly equal DBStorage.IndexObjectSize now that copy REFs in/out of a db PARAMETERS: t is an index tuple, i.e. a tuple whose first field is an index object; result points to a TupleTreeRecord that may be overwritten. EFFECTS: the index object contained in tuple t is written into result. PARAMETERS: an index tuple, i.e. a tuple whose first field is an index object, and a value for such and object. EFFECTS: writes the value val into the index object field of tuple t. RESULTS: the "segment ID" of the segment that contains tuple t. RESULTS: the TID of tuple t (suitable for storing in an index). RESULTS: a tuple handle that contains the given TID and CacheHandle. Created to narrow the interface between storage index implementation and the rest of the storage level implementation. Added TupleTree type, and ReleaseTupleHandle, after reading by Nori. Made TupleTree MACHINE DEPENDENT, and eliminated entries and IsFirstEqual fields. DeallocateIndexObject is removed. Caller of ReadIndexObject supplies the location where the result record is stored. Clarified specification of ReadIndexObject. Deleted cacheMaxSize from TupleTreeRecord. ReleaseTupleHandle is now a no-op. TupleTree is now a REF rather than pointer (Cedar 5.0) made Cedar, added tioga formatting ÊÙ˜šœ™Jšœ Ïmœ1™<—Jšœ+™+šœ3™3J™-—J˜šÏk ˜ Jšœ žœ ˜Jšœžœ˜Jšœ žœ˜J˜—šœžœž œž˜,JšœO™OJšœ<™