カタログのpg_collation
には、使用可能な照合順序が記述されています。これは、基本的にSQL名からオペレーティングシステムのロケールカテゴリへのマッピングです。
列 | データ型 | 説明 |
|
| 行識別子。 |
|
| 照合順序名 (名前空間およびエンコーディングごとに一意) 。 |
|
| この照合順序を含む名前空間のOID。 |
|
| 照合の所有者。 |
|
| 照合順序のプロバイダ: |
|
| 照合は決定論的ですか? |
|
| 照合順序が適用可能なエンコーディング、または任意のエンコーディングで機能する場合は-1。 |
|
| この照合順序オブジェクトの |
|
| この照合順序オブジェクトの |
|
| プロバイダー固有の照合順序のバージョン。 これは、照合順序の作成時に記録され、使用時にチェックされて、データの破損につながる可能性のある照合順序定義の変更を検出します。 |
このカタログの一意のキーは、(collname
, collencoding
, collnamespace
) だけでなく (collname
, collnamespace
) です。PostgreSQLは通常、現在のデータベースのエンコーディングまたは-1に等しいcollencoding
を持たないすべての照合順序を無視します。collingencode
= -1のエントリと同じ名前のエントリのエントリの したがって、照合順序を識別するには、これがカタログ定義に従って一意でなくても、修飾SQL名 (schema
. name
) を使用すれば十分です。 このようにカタログを定義する理由は、システム上で利用可能なすべてのロケールのエントリをクラスタ初期化時に入力するため、クラスタで使用される可能性のあるすべてのエンコーディングのエントリを保持できる必要があります。
template0
データベースでは、後にtemplate0
から複製されたデータベースのエンコーディングと一致する可能性があるため、エンコーディングがデータベースのエンコーディングと一致しない照合順序を作成すると便利です。 これは、現在、手動で行われなければならない。