[KEY REF IS
{
ALL[ EXCEPT keyref-1,...] | keyref-2,...}
[{WITH | WITHOUT} INDEX CHECK]
]
keyref
Key number of a search key; this can be taken from the SIA PRINT REPORT (see "SIA PRINT REPORT (general information)").
ALL
Of the schema named, BCHECK checks all search keys and the relevant record type on which the search key is defined as long as they are contained in the realms to be checked.
ALL EXCEPT keyref-1,...
Same meaning as for ALL
however, BCHECK excludes the listed keys from the check.
keyref-2,...
Key numbers of the search keys - listed individually - which BCHECK is to check.
WITH INDEX CHECK
Check index values for indexed search key tables (see "Specify sets to be checked (SET NAME)").
WITH INDEX CHECK refers only to the consistency criteria 5, 6, 7 and 11, and not to the key value check of consistency criteria 8 and 9.
WITHOUT INDEX CHECK
BCHECK does not check any index values.
The KEY statement is used to indicate to BCHECK the keys to be checked. The search keys may be defined on the record type level or the set level as INDEX-SEARCH or CALC-SEARCH keys. BCHECK also checks duplicate tables. The record type on which a search key is defined is automatically checked by BCHECK at the same time, but without LOCATION CHECK.
To check search keys, BCHECK carries out the same checks as for
CALC-SEARCH keys:
in a LOCATION CHECK of record types which are defined with LOCATION MODE IS CALC (see "Specify record types to be checked (RECORD NAME)");INDEX-SEARCH keys:
in the multi-level tables of a set (see "Specify sets to be checked (SET NAME)").
In the case of duplicate tables, BCHECK also checks
the reference to the duplicate header in the table header for plausibility,
the duplicate table header,
the index values in the table index entries of a table page for ascending sequence,
the references to the table entries (DB key lists) from the table index entries for plausibility,
the chaining of the overflow pages of a duplicates table and
the record sequence numbers of a table entry for ascending sequence.
The KEY statement may be specified as often as desired in any position after the control statements. BCHECK ignores duplicate entries.
ASC keys or DESC keys cannot be specified in the KEY statement. They are automatically included in the check if the appropriate set is specified in the SET statement.
If the number of an ASC or DESC key is specified in the KEY statement, BCHECK rejects the checking of this key.
For CALC-SEARCH keys having the same key length, the same restriction applies as for indirect CALC keys (see "Specify record types to be checked (RECORD NAME)").
The occurrence of illegal duplicates of a CALC-SEARCH key in various pages of a hash overflow chain cannot be determined by BCHECK.
For index checking (WITH INDEX CHECK), BCHECK sorts the check records even for a summing check.
Index values are only checked by BCHECK in an overall check.
When search keys or CALC search keys which belong to a distributable list are checked, all realms in which the records of the associated member set type can reside must always be specified.