From deb082a34525cf148634bb8a0bb5264714028a22 Mon Sep 17 00:00:00 2001 From: naisila Date: Thu, 27 Jul 2023 16:55:09 +0300 Subject: [PATCH] Fix removed read-only server setting lc_collate Relevant PG commit: https://github.com/postgres/postgres/commit/b0f6c437160db640d4ea3e49398ebc3ba39d1982 b0f6c437160db640d4ea3e49398ebc3ba39d1982 --- src/test/regress/expected/multi_mx_create_table.out | 9 +++++++++ src/test/regress/expected/multi_schema_support.out | 9 +++++++++ src/test/regress/sql/multi_mx_create_table.sql | 12 ++++++++++++ src/test/regress/sql/multi_schema_support.sql | 12 ++++++++++++ 4 files changed, 42 insertions(+) diff --git a/src/test/regress/expected/multi_mx_create_table.out b/src/test/regress/expected/multi_mx_create_table.out index 6bdef048a..ac7f90826 100644 --- a/src/test/regress/expected/multi_mx_create_table.out +++ b/src/test/regress/expected/multi_mx_create_table.out @@ -53,7 +53,16 @@ CREATE OPERATOR citus_mx_test_schema.=== ( HASHES, MERGES ); SET search_path TO public; +SHOW server_version \gset +SELECT substring(:'server_version', '\d+')::int >= 16 AS server_version_ge_16 +\gset +\if :server_version_ge_16 +-- In PG16, read-only server settings lc_collate and lc_ctype are removed +-- Relevant PG commit: b0f6c437160db640d4ea3e49398ebc3ba39d1982 +SELECT quote_ident((SELECT CASE WHEN datlocprovider='i' THEN daticulocale ELSE datcollate END FROM pg_database WHERE datname = current_database())) as current_locale \gset +\else SELECT quote_ident(current_setting('lc_collate')) as current_locale \gset +\endif CREATE COLLATION citus_mx_test_schema.english (LOCALE=:current_locale); CREATE TYPE citus_mx_test_schema.new_composite_type as (key1 text, key2 text); CREATE TYPE order_side_mx AS ENUM ('buy', 'sell'); diff --git a/src/test/regress/expected/multi_schema_support.out b/src/test/regress/expected/multi_schema_support.out index f39f5f2b1..dcb87486d 100644 --- a/src/test/regress/expected/multi_schema_support.out +++ b/src/test/regress/expected/multi_schema_support.out @@ -347,7 +347,16 @@ SELECT * FROM nation_hash ORDER BY 1,2,3,4; --test COLLATION with schema SET search_path TO public; +SHOW server_version \gset +SELECT substring(:'server_version', '\d+')::int >= 16 AS server_version_ge_16 +\gset +\if :server_version_ge_16 +-- In PG16, read-only server settings lc_collate and lc_ctype are removed +-- Relevant PG commit: b0f6c437160db640d4ea3e49398ebc3ba39d1982 +SELECT quote_ident((SELECT CASE WHEN datlocprovider='i' THEN daticulocale ELSE datcollate END FROM pg_database WHERE datname = current_database())) as current_locale \gset +\else SELECT quote_ident(current_setting('lc_collate')) as current_locale \gset +\endif CREATE COLLATION test_schema_support.english (LOCALE = :current_locale); \c - - - :master_port SET citus.shard_replication_factor TO 2; diff --git a/src/test/regress/sql/multi_mx_create_table.sql b/src/test/regress/sql/multi_mx_create_table.sql index 52270409e..de3468415 100644 --- a/src/test/regress/sql/multi_mx_create_table.sql +++ b/src/test/regress/sql/multi_mx_create_table.sql @@ -51,7 +51,19 @@ CREATE OPERATOR citus_mx_test_schema.=== ( ); SET search_path TO public; + +SHOW server_version \gset +SELECT substring(:'server_version', '\d+')::int >= 16 AS server_version_ge_16 +\gset + +\if :server_version_ge_16 +-- In PG16, read-only server settings lc_collate and lc_ctype are removed +-- Relevant PG commit: b0f6c437160db640d4ea3e49398ebc3ba39d1982 +SELECT quote_ident((SELECT CASE WHEN datlocprovider='i' THEN daticulocale ELSE datcollate END FROM pg_database WHERE datname = current_database())) as current_locale \gset +\else SELECT quote_ident(current_setting('lc_collate')) as current_locale \gset +\endif + CREATE COLLATION citus_mx_test_schema.english (LOCALE=:current_locale); CREATE TYPE citus_mx_test_schema.new_composite_type as (key1 text, key2 text); diff --git a/src/test/regress/sql/multi_schema_support.sql b/src/test/regress/sql/multi_schema_support.sql index 7ca60162e..d870b624f 100644 --- a/src/test/regress/sql/multi_schema_support.sql +++ b/src/test/regress/sql/multi_schema_support.sql @@ -293,7 +293,19 @@ SELECT * FROM nation_hash ORDER BY 1,2,3,4; --test COLLATION with schema SET search_path TO public; + +SHOW server_version \gset +SELECT substring(:'server_version', '\d+')::int >= 16 AS server_version_ge_16 +\gset + +\if :server_version_ge_16 +-- In PG16, read-only server settings lc_collate and lc_ctype are removed +-- Relevant PG commit: b0f6c437160db640d4ea3e49398ebc3ba39d1982 +SELECT quote_ident((SELECT CASE WHEN datlocprovider='i' THEN daticulocale ELSE datcollate END FROM pg_database WHERE datname = current_database())) as current_locale \gset +\else SELECT quote_ident(current_setting('lc_collate')) as current_locale \gset +\endif + CREATE COLLATION test_schema_support.english (LOCALE = :current_locale); \c - - - :master_port