Skip to content
← Catalog atlas / pg_collation

SYSTEM CATALOG · System catalog

pg_collation

The catalog pg_collation describes the available collations, which are essentially mappings from an SQL name to operating system locale categories. See Section 23.2 for more information.

First seen PG 9.1Last seen PG 19Columns 12

Checked column by column against a PostgreSQL 18.6 instance · Raw measurement record ↗

Columns PostgreSQL 18

pg_collation
COLUMNTYPEDESCRIPTION
oid oidNOT NULL Row identifier
collname nameNOT NULL Collation name (unique per namespace and encoding)
collnamespace oidNOT NULL The OID of the namespace that contains this collationReferences:pg_namespace.oid
collowner oidNOT NULL Owner of the collationReferences:pg_authid.oid
collprovider "char"NOT NULLDocumented as:char Provider of the collation: d = database default, b = builtin, c = libc, i = icu
collisdeterministic booleanNOT NULLDocumented as:bool Is the collation deterministic?
collencoding integerNOT NULLDocumented as:int4 Encoding in which the collation is applicable, or -1 if it works for any encoding
collcollate text LC_COLLATE for this collation object. If the provider is not libc, collcollate is NULL and colllocale is used instead.
collctype text LC_CTYPE for this collation object. If the provider is not libc, collctype is NULL and colllocale is used instead.
colllocale text Collation provider locale name for this collation object. If the provider is libc, colllocale is NULL; collcollate and collctype are used instead.
collicurules text ICU collation rules for this collation object
collversion text 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.

Columns marked "implicit" are not included in SELECT *; some early statistics views are completed from same-version source, and the extra provenance is shown in the column description.

Common system columns 6

System attributes PostgreSQL provides, normally not expanded by SELECT *. Kept separately so they are not mixed in with ordinary columns.

ColumnsTypeattnum
tableoidoid-6
cmaxcid-5
xmaxxid-4
cmincid-3
xminxid-2
ctidtid-1

Column evolution matrix

Hover a cell for the column type
PresentAdded / type or attribute changeRemoved
COLUMN9.09.19.29.39.49.59.610111213141516171819
oid
collname
collnamespace
collowner
collencoding
collcollate
collctype
collprovider
collversion
collisdeterministic
colliculocale
collicurules
colllocale

9.0 is the coverage baseline; a column already present in the baseline is not marked as added. The matrix aligns columns by name, so a rename appears as the old column removed and a new column added.

Evolution timeline

Changes between adjacent majors

PostgreSQL 17 ← 16

+ colllocale− colliculocale3 column description updatesCatalog description updated

PostgreSQL 16 ← 15

+ collicurules

PostgreSQL 15 ← 14

+ colliculocale~ collcollate: name → text~ collctype: name → text~ collcollate: not_null: true → false~ collctype: not_null: true → false

PostgreSQL 14 ← 13

Catalog description updated

PostgreSQL 12 ← 11

+ collisdeterministic~ oid: implicit → ordinary1 column description updates

PostgreSQL 10 ← 9.6

+ collprovider+ collversion

PostgreSQL 9.6 ← 9.5

Catalog description updated

PostgreSQL 9.3 ← 9.2

1 column description updates

PostgreSQL 9.1 ← 9.0Catalog added

+ oid+ collname+ collnamespace+ collowner+ collencoding+ collcollate+ collctype

Compare any two versions

Pick two versions to see added, removed, and retyped columns. The interactive comparison needs JavaScript; the evolution timeline reads fine without it.