38.7. character_sets

Представление character_sets описывает наборы символов, доступные в текущей базе данных. Так как Postgres Pro не поддерживает несколько наборов символов в одной базе данных, этот набор показывает только один набор, соответствующий кодировке базы.

Примите к сведению следующие термины, принятые в стандарте SQL:

совокупность символов

Абстрактная коллекция символов, например UNICODE, UCS или LATIN1. Не существует в виде SQL-объекта, но показывается в этом представлении.

форма кодировки символов

Кодировка некоторой совокупности символов. Для большинства устаревших совокупностей используется только одна кодировка, так что эта кодировка не имеет отдельного имени (например, LATIN2 — форма кодировки, применимая к совокупности LATIN2). Но например, Unicode имеет формы кодировки UTF8, UTF16 и т. д. (не все они поддерживаются в Postgres Pro). Формы кодировки не существуют в виде SQL-объектов, но показываются в этом представлении.

набор символов

Именованный SQL-объект, определяющий совокупность и кодировку символов, а также правило сортировки по умолчанию. Предопределённый набор символов обычно называется так же, как форма кодировки, но пользователи могут определить другие имена. Например, набору символов UTF8 обычно соответствует совокупность символов UCS, форма кодировки UTF8 и некоторое правило сортировки по умолчанию.

Вы можете считать, что «кодировка» в Postgres Pro определяет набор или форму кодировки символов. Она имеет такое же имя и может быть только одной в определённой базе.

Таблица 38.5. Столбцы character_sets

ИмяТип данныхОписание
character_set_catalogsql_identifierНаборы символов в настоящее время не представлены в виде объектов схемы, так что этот столбец содержит NULL.
character_set_schemasql_identifierНаборы символов в настоящее время не представлены в виде объектов схемы, так что этот столбец содержит NULL.
character_set_namesql_identifierИмя набора символов, в настоящее время в качестве этого имени показывается имя кодировки базы данных
character_repertoiresql_identifierСовокупность символов — UCS для кодировки UTF8, либо просто имя кодировки
form_of_usesql_identifierФорма кодировки символов, то же, что и кодировка базы данных
default_collate_catalogsql_identifierИмя базы данных, содержащей правило сортировки по умолчанию (всегда текущая база, если это правило установлено)
default_collate_schemasql_identifierИмя схемы, содержащей правило сортировки по умолчанию
default_collate_namesql_identifierИмя правила сортировки по умолчанию. Правилом сортировки по умолчанию считается правило, соответствующее параметрам COLLATE и CTYPE текущей базы данных. Если такого правила нет, данный столбец и связанные столбцы схемы и каталога содержат NULL.

38.7. character_sets

The view character_sets identifies the character sets available in the current database. Since Postgres Pro does not support multiple character sets within one database, this view only shows one, which is the database encoding.

Take note of how the following terms are used in the SQL standard:

character repertoire

An abstract collection of characters, for example UNICODE, UCS, or LATIN1. Not exposed as an SQL object, but visible in this view.

character encoding form

An encoding of some character repertoire. Most older character repertoires only use one encoding form, and so there are no separate names for them (e.g., LATIN2 is an encoding form applicable to the LATIN2 repertoire). But for example Unicode has the encoding forms UTF8, UTF16, etc. (not all supported by Postgres Pro). Encoding forms are not exposed as an SQL object, but are visible in this view.

character set

A named SQL object that identifies a character repertoire, a character encoding, and a default collation. A predefined character set would typically have the same name as an encoding form, but users could define other names. For example, the character set UTF8 would typically identify the character repertoire UCS, encoding form UTF8, and some default collation.

You can think of an encoding in Postgres Pro either as a character set or a character encoding form. They will have the same name, and there can only be one in one database.

Table 38.5. character_sets Columns

NameData TypeDescription
character_set_catalogsql_identifierCharacter sets are currently not implemented as schema objects, so this column is null.
character_set_schemasql_identifierCharacter sets are currently not implemented as schema objects, so this column is null.
character_set_namesql_identifierName of the character set, currently implemented as showing the name of the database encoding
character_repertoiresql_identifierCharacter repertoire, showing UCS if the encoding is UTF8, else just the encoding name
form_of_usesql_identifierCharacter encoding form, same as the database encoding
default_collate_catalogsql_identifierName of the database containing the default collation (always the current database, if any collation is identified)
default_collate_schemasql_identifierName of the schema containing the default collation
default_collate_namesql_identifier Name of the default collation. The default collation is identified as the collation that matches the COLLATE and CTYPE settings of the current database. If there is no such collation, then this column and the associated schema and catalog columns are null.

FAQ