68 lines
2.4 KiB
Plaintext
68 lines
2.4 KiB
Plaintext
compile Insert BTREE.EQUATES
|
|
/*
|
|
* rjc 02-15-15 Copy In From Arev bp
|
|
*/
|
|
|
|
#pragma BLINT_NOWARN
|
|
|
|
EQU TRUE TO 1
|
|
EQU FALSE TO 0
|
|
|
|
EQUATE MAX.LISTLEN$ TO 4000000
|
|
* MTR 9-11-13 WAS 65500
|
|
|
|
EQU V.INDEX.TYPE TO 0 ;* VALUE INDEX MARKER
|
|
EQU ID.INDEX.TYPE TO 1 ;* ID INDEX MARKER
|
|
EQU LEAF.TYPE TO 2 ;* VALUE RECORD MARKER
|
|
EQU REC.TYPE.IX TO 1 ;* FIELD # FOR RECORD TYPE
|
|
EQU NEXT.LEAF.IX TO REC.TYPE.IX + 1 ;* FIELD # FOR "RIGHT" REC ID PTR
|
|
EQU PREV.LEAF.IX TO NEXT.LEAF.IX + 1 ;* FIELD # FOR "LEFT" REC ID PTR
|
|
EQU SEP.IX TO REC.TYPE.IX + 1 ;* FIELD # FOR SEPARATORS IN INDEX
|
|
EQU OPT.IX TO SEP.IX + 1
|
|
EQU VALUE.IX TO PREV.LEAF.IX + 1 ;* FIELD # FOR VALUES IN LEAF
|
|
EQU ID.IX TO VALUE.IX + 1 ;* FIELD # FOR IDS IN LEAF
|
|
EQU SVM TO \FC\
|
|
*
|
|
* B+TREE INDEX RECORD FORMAT:
|
|
*
|
|
* F1: '0' OR '1' - INDICATING A NON-LEAF RECORD(INDEX).
|
|
* 0 => VALUE INDEX - SEPARATORS REFER TO VALUES
|
|
* 1 => ID INDEX - SEPARATORS REFER TO ID'S
|
|
* F2: Multivalued list of separator values
|
|
* F3: Associated multivalued list of optional identifiers
|
|
*
|
|
* THE SEPARATOR VALUES DOUBLE AS RECORD POINTERS
|
|
* D L S <MAX>
|
|
* / | | \______________
|
|
* | \
|
|
* N Q S SEP SEP <MAX>
|
|
*
|
|
* A SEPARATOR POINTS TO A RECORD CONTAINING INDEXES TO OR DATA WHOSE
|
|
* VALUES ARE LESS THAN OR EQUAL TO THE SEPARATOR VALUE.
|
|
* A <MAX> SEPARATOR IMPLIES THE LARGEST POSSIBLE VALUE
|
|
* FOR LEFT JUSTIFIED INDEXES, <MAX> = @SVM:@SVM:@SVM
|
|
* FOR RIGHT JUSTIFIED INDEXES, <MAX> = 1E4932
|
|
*
|
|
* RECORD ID'S ARE BUILT AS FOLLOWS:
|
|
*
|
|
* F.NAME:"*":OPTIONALIDENTIFIER:"*":SEPARATOR
|
|
* WHERE F.NAME IS THE FIELD NAME OF THE FIELD BEING INDEXED.
|
|
* E.G. THE TOP LINE IN THE TREE ABOVE INDICATES RECORD IDS OF:
|
|
* (ASSUMING FIELD IS "NAME")
|
|
* NAME**D
|
|
* NAME**L
|
|
* NAME**S
|
|
* NAME**
|
|
* THE OPTIONAL IDENTIFIER IS ADDED IF NECESSARY TO MAKE UNIQUE ID'S
|
|
*
|
|
* LEAF RECORD FORMAT:
|
|
*
|
|
* F1: '2' IMPLYING A LEAF RECORD
|
|
* F2: NEXT SEQUENTIAL LEAF ID
|
|
* F3: PREVIOUS SEQUENTIAL LEAF ID
|
|
* F4: MULTIVALUED LIST OF INDEX VALUES
|
|
* F5: ASSOCIATED MV LIST OF IDS FOR EACH VALUE IN F4
|
|
* ID'S SEPARATED BY SVM'S
|
|
*
|
|
* Source Date: 17:15:53 16 FEB 1988 Build ID: AREV*1.0.2 Level: 2.0
|