diff options
author | Peter Eisentraut <peter@eisentraut.org> | 2022-02-14 08:09:04 +0100 |
---|---|---|
committer | Peter Eisentraut <peter@eisentraut.org> | 2022-02-14 08:27:26 +0100 |
commit | 37851a8b83d3d57ca48736093b10aa5f3bc0c177 (patch) | |
tree | 5da6f597063d9579937e80aaf66d92c50ef73029 /src/test | |
parent | 9898c5e03c40c133a9a01d8b2b36cb7c990b30d5 (diff) |
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
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/regress/expected/collate.icu.utf8.out | 4 | ||||
-rw-r--r-- | src/test/regress/expected/collate.linux.utf8.out | 4 | ||||
-rw-r--r-- | src/test/regress/sql/collate.icu.utf8.sql | 4 | ||||
-rw-r--r-- | src/test/regress/sql/collate.linux.utf8.sql | 4 |
4 files changed, 16 insertions, 0 deletions
diff --git a/src/test/regress/expected/collate.icu.utf8.out b/src/test/regress/expected/collate.icu.utf8.out index 70133df8042..9699ca16cfc 100644 --- a/src/test/regress/expected/collate.icu.utf8.out +++ b/src/test/regress/expected/collate.icu.utf8.out @@ -1085,6 +1085,10 @@ DROP ROLE regress_test_role; -- ALTER ALTER COLLATION "en-x-icu" REFRESH VERSION; NOTICE: version has not changed +-- also test for database while we are here +SELECT current_database() AS datname \gset +ALTER DATABASE :"datname" REFRESH COLLATION VERSION; +NOTICE: version has not changed -- dependencies CREATE COLLATION test0 FROM "C"; CREATE TABLE collate_dep_test1 (a int, b text COLLATE test0); diff --git a/src/test/regress/expected/collate.linux.utf8.out b/src/test/regress/expected/collate.linux.utf8.out index f06ae543e49..f2d0eb94f24 100644 --- a/src/test/regress/expected/collate.linux.utf8.out +++ b/src/test/regress/expected/collate.linux.utf8.out @@ -1096,6 +1096,10 @@ DROP ROLE regress_test_role; -- ALTER ALTER COLLATION "en_US" REFRESH VERSION; NOTICE: version has not changed +-- also test for database while we are here +SELECT current_database() AS datname \gset +ALTER DATABASE :"datname" REFRESH COLLATION VERSION; +NOTICE: version has not changed -- dependencies CREATE COLLATION test0 FROM "C"; CREATE TABLE collate_dep_test1 (a int, b text COLLATE test0); diff --git a/src/test/regress/sql/collate.icu.utf8.sql b/src/test/regress/sql/collate.icu.utf8.sql index 9cee3d0042b..242a7ce6b7c 100644 --- a/src/test/regress/sql/collate.icu.utf8.sql +++ b/src/test/regress/sql/collate.icu.utf8.sql @@ -409,6 +409,10 @@ DROP ROLE regress_test_role; ALTER COLLATION "en-x-icu" REFRESH VERSION; +-- also test for database while we are here +SELECT current_database() AS datname \gset +ALTER DATABASE :"datname" REFRESH COLLATION VERSION; + -- dependencies diff --git a/src/test/regress/sql/collate.linux.utf8.sql b/src/test/regress/sql/collate.linux.utf8.sql index cbbd2203e41..0f6dd1b02e2 100644 --- a/src/test/regress/sql/collate.linux.utf8.sql +++ b/src/test/regress/sql/collate.linux.utf8.sql @@ -410,6 +410,10 @@ DROP ROLE regress_test_role; ALTER COLLATION "en_US" REFRESH VERSION; +-- also test for database while we are here +SELECT current_database() AS datname \gset +ALTER DATABASE :"datname" REFRESH COLLATION VERSION; + -- dependencies |