mirror of
https://github.com/postgres/postgres.git
synced 2025-12-22 17:42:17 +03:00
Database-level collation version tracking
This adds to database objects the same version tracking that collation objects have. There is a new pg_database column datcollversion that stores the version, a new function pg_database_collation_actual_version() to get the version from the operating system, and a new subcommand ALTER DATABASE ... REFRESH COLLATION VERSION. This was not originally added together with pg_collation.collversion, since originally version tracking was only supported for ICU, and ICU on a database-level is not currently supported. But we now have version tracking for glibc (since PG13), FreeBSD (since PG14), and Windows (since PG13), so this is useful to have now. Reviewed-by: Julien Rouhaud <rjuju123@gmail.com> Discussion: https://www.postgresql.org/message-id/flat/f0ff3190-29a3-5b39-a179-fa32eee57db6%40enterprisedb.com
This commit is contained in:
@@ -151,7 +151,8 @@ HINT: Rebuild all objects affected by this collation and run ALTER COLLATION pg
|
||||
</para>
|
||||
</note>
|
||||
<para>
|
||||
Currently, there is no version tracking for the database default collation.
|
||||
For the database default collation, there is an analogous command
|
||||
<literal>ALTER DATABASE ... REFRESH COLLATION VERSION</literal>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
||||
@@ -35,6 +35,8 @@ ALTER DATABASE <replaceable class="parameter">name</replaceable> OWNER TO { <rep
|
||||
|
||||
ALTER DATABASE <replaceable class="parameter">name</replaceable> SET TABLESPACE <replaceable class="parameter">new_tablespace</replaceable>
|
||||
|
||||
ALTER DATABASE <replaceable class="parameter">name</replaceable> REFRESH COLLATION VERSION
|
||||
|
||||
ALTER DATABASE <replaceable class="parameter">name</replaceable> SET <replaceable>configuration_parameter</replaceable> { TO | = } { <replaceable>value</replaceable> | DEFAULT }
|
||||
ALTER DATABASE <replaceable class="parameter">name</replaceable> SET <replaceable>configuration_parameter</replaceable> FROM CURRENT
|
||||
ALTER DATABASE <replaceable class="parameter">name</replaceable> RESET <replaceable>configuration_parameter</replaceable>
|
||||
@@ -171,6 +173,16 @@ ALTER DATABASE <replaceable class="parameter">name</replaceable> RESET ALL
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><literal>REFRESH COLLATION VERSION</literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Update the database collation version. See <xref
|
||||
linkend="sql-altercollation-notes"/> for background.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><replaceable>configuration_parameter</replaceable></term>
|
||||
<term><replaceable>value</replaceable></term>
|
||||
|
||||
@@ -28,6 +28,7 @@ CREATE DATABASE <replaceable class="parameter">name</replaceable>
|
||||
[ LOCALE [=] <replaceable class="parameter">locale</replaceable> ]
|
||||
[ LC_COLLATE [=] <replaceable class="parameter">lc_collate</replaceable> ]
|
||||
[ LC_CTYPE [=] <replaceable class="parameter">lc_ctype</replaceable> ]
|
||||
[ COLLATION_VERSION = <replaceable>collation_version</replaceable> ]
|
||||
[ TABLESPACE [=] <replaceable class="parameter">tablespace_name</replaceable> ]
|
||||
[ ALLOW_CONNECTIONS [=] <replaceable class="parameter">allowconn</replaceable> ]
|
||||
[ CONNECTION LIMIT [=] <replaceable class="parameter">connlimit</replaceable> ]
|
||||
@@ -158,6 +159,26 @@ CREATE DATABASE <replaceable class="parameter">name</replaceable>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><replaceable>collation_version</replaceable></term>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Specifies the collation version string to store with the database.
|
||||
Normally, this should be omitted, which will cause the version to be
|
||||
computed from the actual version of the database collation as provided
|
||||
by the operating system. This option is intended to be used by
|
||||
<command>pg_upgrade</command> for copying the version from an existing
|
||||
installation.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
See also <xref linkend="sql-alterdatabase"/> for how to handle
|
||||
database collation version mismatches.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><replaceable class="parameter">tablespace_name</replaceable></term>
|
||||
<listitem>
|
||||
|
||||
Reference in New Issue
Block a user