索引 - ファイル ヘッダー

ファイル ヘッダーは、索引内のオフセット 0 に位置します。次に示すフィールド以外、最初の 128 バイトは標準の可変構造ファイル ヘッダーと同じです。

オフセット サイズ 説明
0 4 最初の 4 ビットは常に 3 (バイナリの 0011) に設定され、これがシステム レコードであることを示します。残りのビットには、索引のノードのサイズが格納されます。これは、システム レコードおよびノードのサイズを指定するためにここで使用される 2 バイトを nodeize 構成オプションから引いて計算されます。

たとえば、nodesize のデフォルト値は 1024 であるため、この場合の最初の 4 ビットは x"30FE になります。

4 2 アドオン製品で使用されるデータベースの連番。
6 2 整合性フラグ。索引ファイルのみ。ヘッダーの読み取り時にこの値がゼロ以外の場合は、ファイルが破損していることを示します。
8 14 ファイルの作成日時 (YYMMDDHHMMSSCC 形式)。
22 14 内部使用目的。
36 2 内部使用目的。
38 1 内部使用目的。
39 1 索引編成では、値は常に 2 です。
40 1 内部使用目的。
41 1 データ圧縮ルーチン番号
0
圧縮なし
1
CBLDC001
2 から 127
内部で使用するために予約されています。
128 から 255
ユーザー定義の圧縮ルーチン番号
42 1 内部使用目的。
43 1 索引ファイルの種類 (索引ファイルのみ)
44 4 内部使用目的。
48 1 レコード モード
0
固定長形式
1
可変長形式

索引ファイルの場合は、.idx ファイルのレコード モード フィールドが優先されます。

49 5 内部使用目的。
54 4 最大レコード長。たとえば、最大レコード長が 80 文字の場合、このフィールドには x"00 00 00 50" が格納されます。
58 4 最小レコード長。たとえば、最小レコード長が 2 文字の場合、このフィールドには x"00 00 00 02" が格納されます。
62 14 常に 0 が格納されます。
76 1 予約済み。4 に設定します。
77 31 常に 0 が格納されます。
108 4 ファイルを作成する索引ファイル ハンドラーのバージョンおよびビルド データ。
112 8 内部使用目的。
120 8 索引の論理的な末尾のオフセット。

ファイル ヘッダーの残りの部分には、次のフィールドがあります。

オフセット サイズ 説明
128 8 データ ファイルの論理的な末尾のオフセット。
136 1 値は 2 です。
137 1 値は 2 です。
138 1 値は 4 です。
139 1 値は 4 です。
140 2 ファイルに定義されたキーの数を格納します。
142 1 値は 0 です (重複オカレンス レコードが存在する場合は 1)。詳細は、「索引ファイルの種類」のトピックを参照してください。
143 1 値は 2 または 4 です。重複が許可された索引内のオカレンス番号に使用するバイト数を表します。
144 8 先頭のキー情報レコードのオフセット。
152 8 データ ファイルの空き領域レコードのオフセット。

固定形式のファイルの場合は、索引空き領域レコードと同じ形式の索引のレコードになりますが、アドレスはデータ ファイルの空きレコードを示します。可変形式のファイルの場合は、データ空き領域レコードのデータ ファイルのアドレスになります。このレコードは、索引空き領域レコードに対して異なる構造を持ちます。

160 8 索引にある最初の空き領域レコードのオフセット。
168 4 値はゼロです。
172 4 索引のレコード長 (ノード サイズ)。
176 8 ロールバック回復プロセス中にファイルの状態と特定のトランザクション ログ エントリを比較するために使用される一意のシーケンス番号。
184 328 予約済み。値はゼロです。ノード サイズは 512 です。
  840 予約済み。値はゼロです。ノード サイズは 1024 です。
  3912 予約済み。値はゼロです。ノード サイズは 4096 です。