extern int blonde_fguy_minute (void *, const void *, unsigned, void **, void ***, unsigned *, const void **, unsigned *);
The function describes the b-tree external (i.e. data) node that would store the first greater than the $3 long $2 key in the $1 in-memory table as the address of the parent node, the address where the node is recorded, the mandatory common prefix bit length of all node keys, the address of the upper bound internal key and its (byte) length, all stored at $4 through $8, in the listed order.
The nonblonde b-tree are of the + variant, where user keys go only to external (most outward) level nodes.
If no greater than the $3 long $2 key is present in the $1 table the last node is picked up (it is the one where such a key would go).
The stored memory locations are internal to the in-memory table and will be overwritten or invalidated by subsequent library calls.
If the $1 table b-tree has only one node NULL
will be stored at $4 for
the parent node address.
The function does not identify the node corresponding the $3 long $2 key. It does store instead at $5 the address (inside the *$4 node) where such a node would be recorded.
The upper bound key described at *$7 and *$8 is an internal key greater than all the keys of the matching node (nonblode internal keys may not match any user keys). If the last (external) node is picked up, and only if the last is picked up, 0 will be stored at $8 (there’s no upper bound key for the node).
The node lower bound key would match the upper bound one for the first *$6 bits.
The function returns 0 success and an error code descriptive of the failure
condition, with BLONDE_MINUTE_DECK_ERROR
indicating an empty table.
See The B-trees.
See The Nodes.
The function may be used to traverse all internal keys / external nodes, with the iteration started for the $2, $3 search null key and ended for the zero length *$7, *$8 found key, with the found key replacing the searched key between successive calls. The key would be copied between calls.