34.7. character_sets

このcharacter_setsビューは、現在のデータベースで利用可能な文字セットを識別します。PostgreSQLはひとつのデータベース内で複数の文字セットをサポートしないので、このビューは常にデータベースエンコーディングの一行だけを表示します。

以下の用語のSQL標準での使われ方に注意してください。

文字集合

例えばUNICODEUCSLATIN1といった抽象的な文字集合です。SQLオブジェクトしてはでてきませんが、このビューで参照できます。

文字符号化形式

文字集合の符号化方式です。ほとんどの古い文字集合はひとつの符号化形式を使うため、それらについては分離した名称はありません(たとえば、LATIN1LATIN1集合に適用可能な符号化形式です)。しかし例えばUnicodeにはUTF8UTF16などの符号化形式があります(PostgreSQLでは一部だけサポートしています)。符号化形式はSQLオブジェクトとして表にでませんが、このビューで参照できます。

文字セット

文字集合、文字符号化方式とデフォルトの照合を識別する順序名前つきのSQLオブジェクトです。定義済みの文字セットは、一般的に符号化形式と同じ名前を持ちますが、ユーザは他の名前を定義することができます。例えば、文字セットUTF8は一般的に文字集合UCS、符号化形式UTF8と何らかのデフォルト照合を識別します。

PostgreSQLにおける"encoding"は、文字セットまたは文字符号化形式のいずれかと考えられます。これらは同じ名前を持ち一つのデータベースでは一つだけ存在できます。

表 34-5. character_setsの列

名前データ型説明
character_set_catalogsql_identifier文字セットはスキーマオブジェクトとして実装されていないので、この列はNULLです。
character_set_schemasql_identifier文字セットはスキーマオブジェクトとして実装されていないので、この列はNULLです。
character_set_namesql_identifier文字セットの名前で、現在はデーベースエンコーディングを表示するように実装されています。
character_repertoiresql_identifier文字集合で、エンコーディングがUTF8の場合はUCSを、それ以外の場合は単にエンコーディング名を表示します。
form_of_usesql_identifier文字符号化形式で, データベースエンコーディングと同じです。
default_collate_catalogsql_identifierデフォルト照合を含むデータベース(いずれかの照合が識別された場合は常に現在のデータベース)の名前です。
default_collate_schemasql_identifierデフォルト照合を含むスキーマの名前です。
default_collate_namesql_identifierデフォルト照合の名前です。デフォルト照合は、現在のデータベースのCOLLATECTYPE設定に一致する照合として識別されます。そのような照合が存在しない場合は、この列や対応するスキーマやカタログの列はNULLです。