| Name | Type | Description | 
|---|---|---|
| BlockOffset | ajulong | Offset within main index | 
| Nkeys | ajuint | Number of keys filled | 
| TotLen | ajuint | Total length of keys | 
| Left | ajulong | Left Sibling | 
| Right | ajulong | Right Sibling | 
| Overflow | ajulong | Offset to overflow block | 
| PrevNode | ajulong | Previous node | 
| NodeType | ajuint | Root, Internal or Leaf | 
| Padding | char[4] | Padding to alignment boundary | 
| Name | Type | Description | 
|---|---|---|
| next | struct AjSBtMem* | next node | 
| prev | struct AjSBtMem* | previous node | 
| karray | AjPStr* | key array (primary trees) | 
| parray | ajulong* | pointer arrays (primary and secondary trees) | 
| overflows | ajulong* | overflows (primary) and keys (secondary) | 
| used | AjBool | node in use | 
| Padding | char[4] | Padding to alignment boundary | 
| Name | Type | Description | 
|---|---|---|
| id | AjPStr | Unique ID | 
| offset | ajulong | Offset within database file (ftello) | 
| refoffsets | ajulong* | Offset within reference database file(s) (ftello) | 
| dbno | ajuint | Database file number | 
| dups | ajuint | Duplicates | 
| refcount | ajuint | Number of reference files | 
| Padding | char[4] | Padding to alignment boundary | 
| Name | Type | Description | 
|---|---|---|
| dbno | ajuint | Database file number | 
| refcount | ajuint | Number of reference files (zero, for padding) | 
| offset | ajulong | Offset within database file (ftello) | 
| Name | Type | Description | 
|---|---|---|
| dbno | ajuint | Database file number | 
| refcount | ajuint | Number of reference files (one, for padding) | 
| offset | ajulong | Offset within database file (ftello) | 
| refoffset | ajulong | Offset within reference file (ftello) | 
| Name | Type | Description | 
|---|---|---|
| id | AjPStr | Wildcard ID | 
| pagepos | ajulong | Page number of leaf | 
| list | AjPList | list of AjPBtIds | 
| first | AjBool | true for first search | 
| Padding | char[4] | Padding to alignment boundary | 
Key, file number, ftell ID, subkey page (char*, ajuint, ajulong, ajulong)
| Name | Type | Description | 
|---|---|---|
| NodeType | ajuint | Node type | 
| Maxentries | ajuint | Number of entries available | 
| Nentries | ajuint | Number of entries | 
| Padding | ajuint | Padding to alignment boundary | 
| Overflow | ajulong | Offset to overflow block | 
| keylen | ajuint* | Key lengths | 
| Ids | AjPBtId* | Ids | 
| Name | Type | Description | 
|---|---|---|
| offset | ajulong | Offset within database file (ftello) | 
| refoffsets | ajulong* | Offset within reference database file(s) (ftello) | 
| dbno | ajuint | Database file number | 
| refcount | ajuint | Number of reference files | 
Key, file number, ftell ID, subkey page (char*, ajuint, ajulong, ajulong)
| Name | Type | Description | 
|---|---|---|
| NodeType | ajuint | Node type | 
| Maxentries | ajuint | Number of entries available | 
| Nentries | ajuint | Number of entries | 
| Padding | ajuint | Padding to alignment boundary | 
| Overflow | ajulong | Offset to overflow block | 
| NumId | AjPBtNumId* | secondary tree IDs | 
| Name | Type | Description | 
|---|---|---|
| pagepos | ajulong | Page number | 
| next | struct AjSBtpage* | Next page | 
| prev | struct AjSBtpage* | Previous page | 
| buf | unsigned char* | Buffer | 
| dirty | ajuint | BT_DIRTY if page needs to be written to disc | 
| lockfor | ajuint | Reason for last setting of dirty as BT_LOCK | 
| Name | Type | Description | 
|---|---|---|
| fp | FILE* | Tree index file pointer | 
| filename | AjPStr | Filename | 
| basename | AjPStr | File base name | 
| plru | AjPBtpage | Least recently used primary cache page | 
| pmru | AjPBtpage | Most recently used primary cache page | 
| slru | AjPBtpage | Least recently used secondary cache page | 
| smru | AjPBtpage | Most recently used secondary cache page | 
| bmem | AjPBtMem | Primary array allocation MRU bottom | 
| tmem | AjPBtMem | Primary array allocation MRU top | 
| bsmem | AjPBtMem | Secondary array allocation MRU bottom | 
| tsmem | AjPBtMem | Secondary array allocation MRU top | 
| replace | AjPStr | Replacement ID | 
| pripagetable | AjPTable | Table of cached primary pages | 
| secpagetable | AjPTable | Table of cached secondary pages | 
| totsize | ajulong | Tree index total length used | 
| maxsize | ajulong | Tree index total length available | 
| filesize | ajulong | Tree index length after any compression | 
| pripagecount | ajulong | Tree index number of primary pages | 
| secpagecount | ajulong | Tree index number of secondary pages | 
| secrootblock | ajulong | Secondary tree root block | 
| numreplace | ajulong | Replacement numeric ID | 
| countunique | ajulong | Number of unique tokens indexed | 
| countall | ajulong | Number of total tokens indexed | 
| pricachehits | ajulong | Number of primnary cached page reads | 
| seccachehits | ajulong | Number of secondary cached page reads | 
| prireads | ajulong | Number of physical primary page reads from disk | 
| secreads | ajulong | Number of physical secondary page reads from disk | 
| priwrites | ajulong | Number of physical primary page writes to disk | 
| secwrites | ajulong | Number of physical secondary page writes to disk | 
| pripagesize | ajuint | Size of primary cache pages | 
| secpagesize | ajuint | Size of secondary cache pages | 
| prilistLength | ajuint | Number of pages in primary cache | 
| seclistLength | ajuint | Number of pages in secondary cache | 
| porder | ajuint | Order of primary tree | 
| plevel | ajuint | Depth of primary tree | 
| pnperbucket | ajuint | Number of entries in a primary bucket | 
| pricachesize | ajuint | Maximum number of pages to cache | 
| sorder | ajuint | Order of secondary tree | 
| slevel | ajuint | Depth of secondary tree | 
| snperbucket | ajuint | Number of entries in a secondary bucket | 
| seccachesize | ajuint | Maximum number of pages to cache | 
| keylimit | ajuint | Max length of primary key | 
| idlimit | ajuint | Max length of secondary key | 
| refcount | ajuint | Number of extra files for each entry | 
| secondary | AjBool | Secondary index | 
| readonly | AjBool | Read only flag | 
| dodelete | AjBool | Deletion flag | 
| compressed | AjBool | Index is compressed | 
| Name | Type | Description | 
|---|---|---|
| keyword | AjPStr | keyword | 
| treeblock | ajulong | root block of secondary tree | 
| id | AjPStr | Id string | 
| Name | Type | Description | 
|---|---|---|
| NodeType | ajuint | Node type | 
| Maxentries | ajuint | Number of entries available | 
| Nentries | ajuint | Number of entries | 
| Padding | ajuint | Padding to alignment boundary | 
| Overflow | ajulong | Offset to overflow block | 
| keylen | ajuint* | key lengths | 
| codes | AjPBtPri* | Primary keywords | 
| Name | Type | Description | 
|---|---|---|
| NodeType | ajuint | Node type | 
| Maxentries | ajuint | Number of entries available | 
| Nentries | ajuint | Number of entries | 
| Padding | ajuint | Padding to alignment boundary | 
| Overflow | ajulong | Offset to overflow block | 
| keylen | ajuint* | key lengths | 
| SecIds | AjPStr* | Ids | 
| Name | Type | Description | 
|---|---|---|
| keyword | AjPStr | Wildcard keyword | 
| prefix | AjPStr | Wildcard keyword prefix | 
| pagepos | ajulong | Page number of primary tree leaf | 
| list | AjPList | list of AjPBtPris | 
| cache | AjPBtcache | cache for secondary tree | 
| idlist | AjPList | list of AjPStr IDs | 
| secpagepos | ajulong | Page number of secondary tree leaf | 
| first | AjBool | true for first search | 
| Padding | char[4] | Padding to alignment boundary |