pg_collation
pg_collation
カタログは利用可能、SQL名とオペレーティングシステムのロケールカテゴリとの基本的な対応付けを行う照合順序を記述します。
詳細は 24.2を参照してください。
表53.12 pg_collation
の列
列 型 説明 |
---|
行識別子 |
照合順序の名前(名前空間およびエンコード方式で一意) |
この照合順序を含む名前空間のOID |
照合順序の所有者 |
照合順序の提供者。 |
照合順序は決定論的か? |
この照合順序を適用することができるエンコード方式。任意のエンコード方式で動作する場合は-1 |
この照合順序オブジェクト用の |
この照合順序オブジェクト用の |
この照合オブジェクトのICUロケールID |
この照合順序に対する提供者固有のバージョンです。 これは照合順序が作成された時に記録され、データの破壊につながりかねない照合順序定義の変更を検知するために使用時に検査されます。 |
このカタログの一意キーは(collname
, collnamespace
)だけではなく(collname
,collencoding
, collnamespace
)です。
PostgreSQLは通常、collencoding
が現在のデータベースのエンコード方式または-1と一致しない照合順序をすべて無視します。
また、collencoding
= -1を持つ項目と名前が一致する新しい項目の作成は許されません。
したがって照合順序を識別するためには、カタログの定義に従った一意ではない場合であっても、限定されたSQL名称(schema
.name
)を使用することで十分です。
このようにカタログを定義した理由は、クラスタの初期化時にinitdb がシステムで利用可能なすべてのロケール用の項目でこのカタログにデータを投入するためです。
その為、今後そのクラスタで使用される可能性があるすべてのエンコード方式のエントリーを保持できるようにしなければなりません。
後でtemplate0
から複製されるデータベースのエンコード方式と一致するかもしれないので、template0
データベースのデータベースのエンコード方式と一致しないものの照合順を作成することが有用になるかもしれません。
現在これは手作業で行う必要があります。