3.4.13 インデクスキー値の排他資源の作成方法
インデクスのキー値が10バイトを超えた場合,システム定義のpd_key_resource_typeオペランドの指定値によって,作成されるインデクスキー値の排他資源が変わります。システム定義のpd_key_resource_typeオペランドについては,マニュアル「HiRDB システム定義」を参照してください。
pd_key_resource_typeオペランドにTYPE1を指定した場合の,キー値排他資源の作成方法を次の図に示します。
- [説明]
-
キー長が10バイトを超えると,キー値の先頭2バイトと下位1バイトを除いた長さを7バイト単位で切り出し,ビットシフトしながら排他的論理和をします。ビットシフトは,切り出した回数を8で割った余りの数で論理シフトし,8バイトデータの排他的論理和をします。
排他的論理和の結果(中間結果)は,8バイトの領域に格納し,先頭1バイト(X)と下位1バイト(Y)の排他的論理和をして,7バイト分のデータ(結果)を作成します。
この7バイト分のデータ(結果)と,最初に除いた先頭2バイトと下位1バイトとを合わせた,10バイトのデータがインデクスキー値の排他資源となります。
pd_key_resource_typeオペランドにTYPE2を指定した場合の,キー値排他資源の作成方法を次の図に示します。
- [説明]
-
キー長が10バイトを超えると,キー値の先頭2バイトと下位1バイトを除いた長さを7バイト単位で排他的論理和をします。排他的論理和の結果の7バイトデータと先頭2バイト,下位1バイトを合わせた10バイトのデータがインデクスキー値の排他資源となります。