他のバージョンの文書 15 | 14 | 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の列

名前参照先説明
oidoid 行識別子
collnamename 照合順序の名前(名前空間およびエンコード方式で一意)
collnamespaceoidpg_namespace.oid この照合順序を含む名前空間のOID
collowneroidpg_authid.oid照合順序の所有者
collproviderchar 照合順序の提供者。dはデータベースのデフォルト、cはlibc、iはICU。
collisdeterministicbool 照合順序は決定論的か?
collencodingint4 この照合順序を適用することができるエンコード方式。任意のエンコード方式で動作する場合は-1
collcollatename この照合順序オブジェクト用のLC_COLLATE
collctypename この照合順序オブジェクト用のLC_CTYPE
collversiontext  Provider-specific version of the collation. This is recorded when the collation is created and then checked when it is used, to detect changes in the collation definition that could lead to data corruption.

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

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