doc.patch
text/x-patch
Patch
Same data as JSON:
GET /api/v1/attachments/:id/patch
the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes.
API reference →
Format: unified
| File | + | − |
|---|---|---|
| doc/src/sgml/charset.sgml | 44 | 0 |
| doc/src/sgml/config.sgml | 101 | 0 |
| doc/src/sgml/func.sgml | 33 | 0 |
diff --git a/doc/src/sgml/charset.sgml b/doc/src/sgml/charset.sgml
index 445fd175d8..b9dba8ac67 100644
--- a/doc/src/sgml/charset.sgml
+++ b/doc/src/sgml/charset.sgml
@@ -1047,6 +1047,50 @@ CREATE COLLATION ignore_accents (provider = icu, locale = 'und-u-ks-level1-kc-tr
</tip>
</sect3>
</sect2>
+ <sect2 id="collation-versions">
+ <title>Collation Versions</title>
+
+ <para>
+ Collations are sensitive to the specific collation version, which is
+ obtained from the collation provider library at the time the collation is
+ created (and only updated with <xref linkend="sql-altercollation"/>). If
+ the collation provider library is updated on the system (e.g. due to an
+ operating system upgrade), it may provide a different collation version;
+ but the version recorded in <productname>PostgreSQL</productname> will
+ remain unchanged.
+ </para>
+ <para>
+ New collation versions are generally desirable, as they reflect changes in
+ natural language over time. But these ordering changes can also cause
+ problems, such as the inconsistency of an indexes, which often depend on a
+ stable ordering. If <productname>PostgreSQL</productname> is unable to
+ find a collation in the collation provider that matches the recorded
+ version exactly, it will emit a <literal>WARNING</literal> (configurable
+ with <xref linkend="guc-collation-version-mismatch-error"/>).
+ </para>
+ <sect3 id="multiple-icu-libraries">
+ <title>Multiple ICU collation provider libraries</title>
+ <para>
+ When using the <literal>icu</literal> collation provider,
+ <productname>PostgreSQL</productname> can load multiple ICU collation
+ provider libraries, making it possible to find an exact match for the
+ collation version even if the operating system's ICU library has been
+ upgraded and provides a new collation version.
+ </para>
+ <para>
+ To use additional ICU collation provider libraries, set <xref
+ linkend="guc-icu-library-path"/> to the directory where the ICU libraries
+ are installed, and use <xref linkend="guc-icu-library-versions"/> to
+ control how those libraries are searched.
+ </para>
+ <note>
+ <para>
+ The <literal>libc</literal> collation provider does not allow specifying
+ multiple libraries.
+ </para>
+ </note>
+ </sect3>
+ </sect2>
</sect1>
<sect1 id="multibyte">
diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml
index 9fd2075b1e..3809c26b31 100644
--- a/doc/src/sgml/config.sgml
+++ b/doc/src/sgml/config.sgml
@@ -10288,6 +10288,107 @@ dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir'
</variablelist>
</sect2>
+ <sect2 id="runtime-config-compatible-collation">
+ <title>Collation Version Compatibility</title>
+ <variablelist>
+ <varlistentry id="guc-collation-version-mismatch-error">
+ <term><varname>collation_version_mismatch_error</varname> (<type>boolean</type>)
+ <indexterm>
+ <primary><varname>collation_version_mismatch_error</varname> configuration parameter</primary>
+ </indexterm>
+ </term>
+ <listitem>
+ <para>
+ If <productname>PostgreSQL</productname> detects mismatched collation
+ versions, and this variable is set to <literal>true</literal>, an
+ error will be raised. If this variable is set to
+ <literal>false</literal>, a warning will be raised instead. The
+ default is <literal>false</literal>.
+ </para>
+ <para>
+ See <xref linkend="collation-versions"/> for more information.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="guc-icu-library-path">
+ <term><varname>icu_library_path</varname> (<type>string</type>)
+ <indexterm>
+ <primary><varname>icu_library_path</varname> configuration parameter</primary>
+ </indexterm>
+ </term>
+ <listitem>
+ <para>
+ Set to the directory where additional ICU libraries are installed, to
+ be searched for matching collation versions.
+ </para>
+ <para>
+ See <xref linkend="multiple-icu-libraries"/> for more information.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="guc-icu-library-versions">
+ <term><varname>icu_library_versions</varname> (<type>string</type>)
+ <indexterm>
+ <primary><varname>icu_library_versions</varname> configuration parameter</primary>
+ </indexterm>
+ </term>
+ <listitem>
+ <para>
+ When searching for a matching collation version, search the ICU
+ libraries with the version numbers specified in this setting,
+ separated by commas. By default, only the built-in ICU library is
+ searched.
+ </para>
+ <para>
+ Library version numbers can be specified as either
+ <literal>major_version</literal> or
+ <literal>major_version.minor_version</literal>. By default, the
+ built-in ICU library is used.
+ </para>
+ <para>
+ If this variable is set to <literal>*</literal>,
+ <productname>PostgreSQL</productname> will attempt to load any ICU
+ library in <literal>icu_library_path</literal> with a compatible major
+ version.
+ </para>
+ <para>
+ See <xref linkend="multiple-icu-libraries"/> for more information.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="guc-default-icu-library-version">
+ <term><varname>default_icu_library_version</varname> (<type>string</type>)
+ <indexterm>
+ <primary><varname>default_icu_library_version</varname> configuration parameter</primary>
+ </indexterm>
+ </term>
+ <listitem>
+ <para>
+ If <productname>PostgreSQL</productname> detects mismatched collation
+ versions, use the collation provided by the ICU library with this
+ version number.
+ </para>
+ <para>
+ Library version numbers can be specified as either
+ <literal>major_version</literal> or
+ <literal>major_version.minor_version</literal>. By default, the
+ built-in ICU library is used.
+ </para>
+ <para>
+ Has no effect if <literal>collation_version_mismatch_error</literal>
+ is set to <literal>true</literal>.
+ </para>
+ <para>
+ See <xref linkend="multiple-icu-libraries"/> for more information.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+ </sect2>
<sect2 id="runtime-config-compatible-clients">
<title>Platform and Client Compatibility</title>
<variablelist>
diff --git a/doc/src/sgml/func.sgml b/doc/src/sgml/func.sgml
index 68cd4297d2..a9f6258e77 100644
--- a/doc/src/sgml/func.sgml
+++ b/doc/src/sgml/func.sgml
@@ -27180,6 +27180,39 @@ postgres=# SELECT * FROM pg_walfile_name_offset((pg_backup_stop()).lsn);
Use of this function is restricted to superusers.
</para></entry>
</row>
+
+ <row>
+ <entry role="func_table_entry"><para role="func_signature">
+ <indexterm>
+ <primary>pg_icu_library_versions</primary>
+ </indexterm>
+ <function>pg_icu_library_versions</function> ()
+ <returnvalue>setof record</returnvalue>
+ ( <parameter>icu_version</parameter> <type>text</type>,
+ <parameter>unicode_version</parameter> <type>text</type>,
+ <parameter>cldr_version</parameter> <type>text</type>) )
+ </para>
+ <para>
+ Returns information from each available ICU library.
+ </para></entry>
+ </row>
+
+ <row>
+ <entry role="func_table_entry"><para role="func_signature">
+ <indexterm>
+ <primary>pg_icu_collation_versions</primary>
+ </indexterm>
+ <function>pg_icu_collation_versions</function> ( <parameter>locale</parameter> <type>text</type> )
+ <returnvalue>setof record</returnvalue>
+ (<parameter>icu_version</parameter> <type>text</type>,
+ <parameter>uca_version</parameter> <type>text</type>,
+ <parameter>collator_version</parameter> <type>text</type> )
+ </para>
+ <para>
+ Returns the collation version of the given locale from each available
+ ICU library.
+ </para></entry>
+ </row>
</tbody>
</tgroup>
</table>