This section lists the errors that may be encountered when using the B Tree system. The occurrence of most of these errors indicates a serious failure in the B Tree system, with the following exceptions:
The key given as a parameter to
bfndky
(or its brethren) does not
exist.
The key given as a parameter to
binsky
(or its brethren) already
exists in the index. Duplicate keys are not
permitted.
File busy, a normal hazard when using shared access mode in a multiuser environment.
The B Tree file was originally opened with read-only permission, and a write has subsequently been attempted. Probably an application program error.
Attempt to perform operation on B Tree file, but there is no file attached to the context pointer provided, likely an application error.
Attempt made to open the same file again, likely an application error.
An attempt has been made to delete the current root, or worse, the super root. This is forbidden by the BT library.
Unknown debug option passed to bdbug, likely an application error.
Maximum number of concurrently open B Tree files reached - may be an application error.
Illegal context pointer passed to a B Tree function - may be an application error.
A negative length data record has been passed to a B Tree function.
The B Tree index file was created using an older version of the B Tree library, and cannot be accessed safely with this version. Extract data using a program based on the previous version of the B Tree library, and import into a index file created with the new. Alternatively, it may be possible to use the btr recovery tool to migrate an older BTree index file to the latest version.
A new data record cannot be entered as the maximum value of a data block pointer has been exceeded.
The index file has reached its maximum size for this implementation.
Unable to set alarm for for file lock handling. This may be a problem with the underlying OS.
Index context invalid for current key operation. An attempt was made to delete or update the current key, but the context is not valid. A valid context is set by bfndky, bnxtky, bprvky, btsel, btseln, or btselp.
Duplicates are not permitted in the superroot. Attempting to permit duplicate keys in the superroot, via btdups(..,TRUE), is prohibited.
Index file was created with a non-64 bit version (LFS=0) of the library. However, access is being attempted with a 64 bit version.
Index file was created with a 64 bit version (LFS=1) of the library. However, access is being attempted with a non-64 bit version.
Table 4.1. B Tree Error Messages
1 | QBLKNR | Block %s is not a root block |
2 | QCLSIO | Unable to close index file: "file" |
3 | QCRTIO | Unable to create index file: "file" |
4 | QCPBLK | Unable to read source or destination block |
5 | QWRBLK | I/O error writing block |
6 | QRDSUP | I/O error reading super root |
7 | QWRSUP | I/O error writing super root |
8 | QOPNIO | I/O error opening index file: "file" |
9 | QRDBLK | I/O error reading block |
10 | QIXOPN | An index file is already open |
11 | QSPLIT | Can't split full block |
12 | QINFER | Bad info block index used |
13 | QNOMEM | Unable to acquire a free memory block |
14 | QSTKUF | Stack underflow |
15 | QSTKOF | Stack overflow |
16 | QBLKFL | Can't insert key at block: %s |
17 | QLOCTB | Replace location out of range |
18 | QSPKEY | Split: search for middle key failed |
19 | QWRMEM | Requested write block not in memory |
20 | QBALSE | Balance: search for key failed |
21 | QDELEX | Exact flag not set for delete |
22 | QDELER | Internal inconsistency in delete operation |
23 | QDELRP | Search for deleted key replacement failed (in block %s) |
24 | QDEMSE | Demote search failed |
25 | QDEMSP | Demote split failed |
26 | QJNSE | Join search failed |
27 | QNODEF | Cannot locate default root ($$default) |
28 | QDELCR | Deletion of the current or super root is forbidden |
29 | QBADIX | Negative in-memory index encountered |
30 | QNOBTF | No index file open for this operation |
31 | QINERR | Index file already in use |
32 | QBADOP | Debug option not recognised |
33 | QNOACT | No more index files may be opened (limit reached) |
34 | QBADAP | Invalid index file context pointer |
35 | QBUSY | File is busy |
37 | QNOBLK | No block available for data storage |
38 | QNEGSZ | Data block usage gone bad: %s |
39 | QNOTDA | Data segment header references a non-data block: %s |
40 | QBADCTXT | Index context invalid for current key operation |
41 | QDLOOP | Circular data segment pointer encountered |
42 | QUNLCK | Unlock operation failed |
43 | QLRUER | LRU queue corrupt - index not in list |
44 | QDAERR | Unable to insert data record |
45 | QDNEG | Data record cannot be negative |
46 | QDUP | Key "key" already exists in index |
47 | QNOKEY | Key "key" does not exist in index |
48 | QNOWRT | Write access to index prohibited |
49 | QNOTFR | Block on free list is not marked as free |
50 | QBADVR | Index file is incompatible with current version: "version" |
51 | QDAOVR | Data capacity exceeded at block: "block" |
52 | QF2BIG | Index file is at maximum size |
53 | QBADAL | Unable to set alarm for locking |
54 | QDRANEG | Data record address is negative: "address" |
55 | QBLKSZERR | Defined block size is not a power of two: "size" |
56 | QNODUPS | Duplicates keys are not allowed for the superroot |
57 | QPOSERR | Location search exceeds key count at block: %s |
58 | QNOT64BIT | Index file likely not LFS (64bit) enabled; doesn't match library. |
59 | Q64BIT | Index file likely LFS (64bit) enabled; doesn't match library. |
60 | QNOTDUP | Duplicate key address does not reference a duplicate block: %s. |
61 | QDUPSZ | Duplicate key entry has wrong size. |
62 | QBADIR | Bad direction parameter. |