キー定義領域

キー定義領域には、索引ファイルで使用するキーを記述します。

キー定義領域は、グローバル情報領域の次に配置され、ファイルにある各キーにつきキー定義を 1 つ記述します。

すべてのキーは、構成要素より前に定義する必要があります。

キー位置の順序に基づいてキーを識別するため、キーを定義する順序は重要です。例えば、主キーと 2 つの副キーを持つ索引ファイルがある場合は、キー定義領域に 3 つのキー定義を記述します。この場合、主キーをキー 0、最初の副キーをキー 1、2 番目の副キーをキー 2 とします。

次に、キー定義領域のレイアウトを示します。未使用の領域や予約済みの領域はすべてバイナリゼロに初期化する必要があります。

オフセット サイズ フィールドの説明
0 2 構成要素数。

通常のキーの場合、構成要素数は 1 になります。分割キーの場合、構成要素数は分割キーに含まれる構成要素の数になります。

2 2 このキーの最初の構成要素定義領域に対するオフセット。

このオフセットは、グローバル情報領域の開始位置の相対位置になり、0 から開始します。

4 1 キーフラグ
ビット 7 予約済みフィールド。バイナリのゼロに設定する必要があります。
ビット 6 許可される重複
ビット 5 予約済みフィールド。バイナリのゼロに設定する必要があります。
ビット 4 主キーであることを示す場合に設定します。どのキーにも設定しない場合は、ファイルハンドラで最初のキーが主キーとなされます。
ビット 3~2 予約済みフィールド。バイナリのゼロに設定する必要があります。
ビット 1 スパースキー。オフセット、 6 を参照してください。
ビット 0 予約済みフィールド。バイナリのゼロに設定する必要があります。
5 1 圧縮フラグ
ビット 7~4 予約済みフィールド。バイナリのゼロに設定する必要があります。
ビット 3 後続ヌルの圧縮
ビット 2 後続空白の圧縮
ビット 1 先行文字の圧縮
ビット 0 重複の圧縮
6 1 スパース文字。

キーフラグのビット 1 (オフセット 4) を設定すると、この文字で全体が構成されているキーは削除されます。

7 9 予約済みフィールド。バイナリゼロに設定する必要があります。