]> begriffs open source - ai-pg/blob - full-docs/html/catalog-pg-collation.html
Include links to all subsection html pages, with shorter paths too
[ai-pg] / full-docs / html / catalog-pg-collation.html
1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>52.12. pg_collation</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="prev" href="catalog-pg-class.html" title="52.11. pg_class" /><link rel="next" href="catalog-pg-constraint.html" title="52.13. pg_constraint" /></head><body id="docContent" class="container-fluid col-10"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">52.12. <code class="structname">pg_collation</code></th></tr><tr><td width="10%" align="left"><a accesskey="p" href="catalog-pg-class.html" title="52.11. pg_class">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="catalogs.html" title="Chapter 52. System Catalogs">Up</a></td><th width="60%" align="center">Chapter 52. System Catalogs</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 18.0 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="catalog-pg-constraint.html" title="52.13. pg_constraint">Next</a></td></tr></table><hr /></div><div class="sect1" id="CATALOG-PG-COLLATION"><div class="titlepage"><div><div><h2 class="title" style="clear: both">52.12. <code class="structname">pg_collation</code> <a href="#CATALOG-PG-COLLATION" class="id_link">#</a></h2></div></div></div><a id="id-1.10.4.14.2" class="indexterm"></a><p>
3    The catalog <code class="structname">pg_collation</code> describes the
4    available collations, which are essentially mappings from an SQL
5    name to operating system locale categories.
6    See <a class="xref" href="collation.html" title="23.2. Collation Support">Section 23.2</a> for more information.
7   </p><div class="table" id="id-1.10.4.14.4"><p class="title"><strong>Table 52.12. <code class="structname">pg_collation</code> Columns</strong></p><div class="table-contents"><table class="table" summary="pg_collation Columns" border="1"><colgroup><col /></colgroup><thead><tr><th class="catalog_table_entry"><p class="column_definition">
8        Column Type
9       </p>
10       <p>
11        Description
12       </p></th></tr></thead><tbody><tr><td class="catalog_table_entry"><p class="column_definition">
13        <code class="structfield">oid</code> <code class="type">oid</code>
14       </p>
15       <p>
16        Row identifier
17       </p></td></tr><tr><td class="catalog_table_entry"><p class="column_definition">
18        <code class="structfield">collname</code> <code class="type">name</code>
19       </p>
20       <p>
21        Collation name (unique per namespace and encoding)
22       </p></td></tr><tr><td class="catalog_table_entry"><p class="column_definition">
23        <code class="structfield">collnamespace</code> <code class="type">oid</code>
24        (references <a class="link" href="catalog-pg-namespace.html" title="52.32. pg_namespace"><code class="structname">pg_namespace</code></a>.<code class="structfield">oid</code>)
25       </p>
26       <p>
27        The OID of the namespace that contains this collation
28       </p></td></tr><tr><td class="catalog_table_entry"><p class="column_definition">
29        <code class="structfield">collowner</code> <code class="type">oid</code>
30        (references <a class="link" href="catalog-pg-authid.html" title="52.8. pg_authid"><code class="structname">pg_authid</code></a>.<code class="structfield">oid</code>)
31       </p>
32       <p>
33        Owner of the collation
34       </p></td></tr><tr><td class="catalog_table_entry"><p class="column_definition">
35        <code class="structfield">collprovider</code> <code class="type">char</code>
36       </p>
37       <p>
38        Provider of the collation: <code class="literal">d</code> = database default,
39        <code class="literal">b</code> = builtin, <code class="literal">c</code> = libc,
40        <code class="literal">i</code> = icu </p></td></tr><tr><td class="catalog_table_entry"><p class="column_definition">
41        <code class="structfield">collisdeterministic</code> <code class="type">bool</code>
42       </p>
43       <p>
44        Is the collation deterministic?
45       </p></td></tr><tr><td class="catalog_table_entry"><p class="column_definition">
46        <code class="structfield">collencoding</code> <code class="type">int4</code>
47       </p>
48       <p>
49        Encoding in which the collation is applicable, or -1 if it
50        works for any encoding
51       </p></td></tr><tr><td class="catalog_table_entry"><p class="column_definition">
52        <code class="structfield">collcollate</code> <code class="type">text</code>
53       </p>
54       <p>
55        <code class="symbol">LC_COLLATE</code> for this collation object. If the provider is
56        not <code class="literal">libc</code>, <code class="structfield">collcollate</code> is
57        <code class="literal">NULL</code> and <code class="structfield">colllocale</code> is
58        used instead.
59       </p></td></tr><tr><td class="catalog_table_entry"><p class="column_definition">
60        <code class="structfield">collctype</code> <code class="type">text</code>
61       </p>
62       <p>
63        <code class="symbol">LC_CTYPE</code> for this collation object. If the provider is
64        not <code class="literal">libc</code>, <code class="structfield">collctype</code> is
65        <code class="literal">NULL</code> and <code class="structfield">colllocale</code> is
66        used instead.
67       </p></td></tr><tr><td class="catalog_table_entry"><p class="column_definition">
68        <code class="structfield">colllocale</code> <code class="type">text</code>
69       </p>
70       <p>
71        Collation provider locale name for this collation object. If the
72        provider is <code class="literal">libc</code>,
73        <code class="structfield">colllocale</code> is <code class="literal">NULL</code>;
74        <code class="structfield">collcollate</code> and
75        <code class="structfield">collctype</code> are used instead.
76       </p></td></tr><tr><td class="catalog_table_entry"><p class="column_definition">
77        <code class="structfield">collicurules</code> <code class="type">text</code>
78       </p>
79       <p>
80        ICU collation rules for this collation object
81       </p></td></tr><tr><td class="catalog_table_entry"><p class="column_definition">
82        <code class="structfield">collversion</code> <code class="type">text</code>
83       </p>
84       <p>
85        Provider-specific version of the collation.  This is recorded when the
86        collation is created and then checked when it is used, to detect
87        changes in the collation definition that could lead to data corruption.
88       </p></td></tr></tbody></table></div></div><br class="table-break" /><p>
89    Note that the unique key on this catalog is (<code class="structfield">collname</code>,
90    <code class="structfield">collencoding</code>, <code class="structfield">collnamespace</code>) not just
91    (<code class="structfield">collname</code>, <code class="structfield">collnamespace</code>).
92    <span class="productname">PostgreSQL</span> generally ignores all
93    collations that do not have <code class="structfield">collencoding</code> equal to
94    either the current database's encoding or -1, and creation of new entries
95    with the same name as an entry with <code class="structfield">collencoding</code> = -1
96    is forbidden.  Therefore it is sufficient to use a qualified SQL name
97    (<em class="replaceable"><code>schema</code></em>.<em class="replaceable"><code>name</code></em>) to identify a collation,
98    even though this is not unique according to the catalog definition.
99    The reason for defining the catalog this way is that
100    <span class="application">initdb</span> fills it in at cluster initialization time with
101    entries for all locales available on the system, so it must be able to
102    hold entries for all encodings that might ever be used in the cluster.
103   </p><p>
104    In the <code class="literal">template0</code> database, it could be useful to create
105    collations whose encoding does not match the database encoding,
106    since they could match the encodings of databases later cloned from
107    <code class="literal">template0</code>.  This would currently have to be done manually.
108   </p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="catalog-pg-class.html" title="52.11. pg_class">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="catalogs.html" title="Chapter 52. System Catalogs">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="catalog-pg-constraint.html" title="52.13. pg_constraint">Next</a></td></tr><tr><td width="40%" align="left" valign="top">52.11. <code class="structname">pg_class</code> </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 18.0 Documentation">Home</a></td><td width="40%" align="right" valign="top"> 52.13. <code class="structname">pg_constraint</code></td></tr></table></div></body></html>