★PostgreSQLカンファレンス2021 11月12日開催/チケット販売中★
他のバージョンの文書 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

51.12. pg_collation

pg_collationカタログは利用可能、SQL名とオペレーティングシステムのロケールカテゴリとの基本的な対応付けを行う照合順序を記述します。 詳細は 23.2を参照してください。

表51.12 pg_collation Columns

列 型

説明

oid oid

行識別子

collname name

照合順序の名前(名前空間およびエンコード方式で一意)

collnamespace oid (references pg_namespace.oid)

この照合順序を含む名前空間のOID

collowner oid (references pg_authid.oid)

照合順序の所有者

collprovider char

照合順序の提供者。dはデータベースのデフォルト、cはlibc、iはICU。

collisdeterministic bool

照合順序は決定論的か?

collencoding int4

この照合順序を適用することができるエンコード方式。任意のエンコード方式で動作する場合は-1

collcollate name

この照合順序オブジェクト用のLC_COLLATE

collctype name

この照合順序オブジェクト用のLC_CTYPE

collversion text

この照合順序に対する提供者固有のバージョンです。 これは照合順序が作成された時に記録され、データの破壊につながりかねない照合順序定義の変更を検知するために使用時に検査されます。


このカタログの一意キーは(collname, collnamespace)だけではなく(collname,collencoding, collnamespace)です。 PostgreSQLは通常、collencodingが現在のデータベースのエンコード方式または-1と一致しない照合順序をすべて無視します。 また、collencoding = -1を持つ項目と名前が一致する新しい項目の作成は許されません。 したがって照合順序を識別するためには、カタログの定義に従った一意ではない場合であっても、限定されたSQL名称(schema.name)を使用することで十分です。 このようにカタログを定義した理由は、クラスタの初期化時にinitdb がシステムで利用可能なすべてのロケール用の項目でこのカタログにデータを投入するためです。 その為、今後そのクラスタで使用される可能性があるすべてのエンコード方式のエントリーを保持できるようにしなければなりません。

後でtemplate0から複製されるデータベースのエンコード方式と一致するかもしれないので、template0データベースのデータベースのエンコード方式と一致しないものの照合順を作成することが有用になるかもしれません。 現在これは手作業で行う必要があります。