From 6897e2124576191590e6c515aeb517e9a67cfb5e Mon Sep 17 00:00:00 2001 From: gindibay Date: Mon, 4 Sep 2023 19:11:01 +0300 Subject: [PATCH] Adds ignore for Postgres 14 --- .../expected/alter_database_propagation.out | 25 +++++++-- .../expected/alter_database_propagation_1.out | 54 +++++++++++++++++++ .../sql/alter_database_propagation.sql | 22 ++++++-- 3 files changed, 93 insertions(+), 8 deletions(-) create mode 100644 src/test/regress/expected/alter_database_propagation_1.out diff --git a/src/test/regress/expected/alter_database_propagation.out b/src/test/regress/expected/alter_database_propagation.out index 7c97233e2..acbc7ce5e 100644 --- a/src/test/regress/expected/alter_database_propagation.out +++ b/src/test/regress/expected/alter_database_propagation.out @@ -36,12 +36,29 @@ select datistemplate from pg_database where datname = 'regression'; f (1 row) -set citus.log_remote_commands = true; -set citus.grep_remote_commands = '%ALTER DATABASE%'; -alter database regression REFRESH COLLATION VERSION; +DO $$ +DECLARE + v_version_num numeric; +BEGIN + SELECT current_setting('server_version_num')::numeric INTO v_version_num; + IF v_version_num >= 150000 THEN + set citus.log_remote_commands = true; + set citus.grep_remote_commands = '%ALTER DATABASE%'; + alter database regression REFRESH COLLATION VERSION; + set citus.log_remote_commands = false; + ELSE + RAISE NOTICE 'Skipping alter database .. REFRESH COLLATION VERSION for PostgreSQL 14'; + END IF; +END; +$$; NOTICE: version has not changed +CONTEXT: SQL statement "alter database regression REFRESH COLLATION VERSION" +PL/pgSQL function inline_code_block line XX at SQL statement NOTICE: issuing ALTER DATABASE regression REFRESH COLLATION VERSION; DETAIL: on server postgres@localhost:xxxxx connectionId: xxxxxxx +CONTEXT: SQL statement "alter database regression REFRESH COLLATION VERSION" +PL/pgSQL function inline_code_block line XX at SQL statement NOTICE: issuing ALTER DATABASE regression REFRESH COLLATION VERSION; DETAIL: on server postgres@localhost:xxxxx connectionId: xxxxxxx -set citus.log_remote_commands = false; +CONTEXT: SQL statement "alter database regression REFRESH COLLATION VERSION" +PL/pgSQL function inline_code_block line XX at SQL statement \ No newline at end of file diff --git a/src/test/regress/expected/alter_database_propagation_1.out b/src/test/regress/expected/alter_database_propagation_1.out new file mode 100644 index 000000000..ed7d41026 --- /dev/null +++ b/src/test/regress/expected/alter_database_propagation_1.out @@ -0,0 +1,54 @@ +--since ALLOW_CONNECTIONS alter option should be executed in a different database +-- and since we don't have a multiple database support for now, +-- this statement will get error +alter database regression ALLOW_CONNECTIONS false; +ERROR: ALLOW_CONNECTIONS is not supported +DO $$ +declare + v_connlimit numeric; + v_connlimit_fetched int; +begin + select datconnlimit into v_connlimit from pg_database where datname = 'regression'; + alter database regression with CONNECTION LIMIT 100; + select datconnlimit into v_connlimit_fetched from pg_database where datname = 'regression'; + raise notice 'v_connlimit: %, v_connlimit_fetched: %', v_connlimit, v_connlimit_fetched; + execute 'alter database regression with CONNECTION LIMIT ' || v_connlimit; + select datconnlimit into v_connlimit_fetched from pg_database where datname = 'regression'; + raise notice 'v_connlimit: %, v_connlimit_fetched: %', v_connlimit, v_connlimit_fetched; +end; +$$ +language plpgsql; +NOTICE: v_connlimit: -1, v_connlimit_fetched: 100 +CONTEXT: PL/pgSQL function inline_code_block line XX at RAISE +NOTICE: v_connlimit: -1, v_connlimit_fetched: -1 +CONTEXT: PL/pgSQL function inline_code_block line XX at RAISE +alter database regression with IS_TEMPLATE true; +select datistemplate from pg_database where datname = 'regression'; + datistemplate +--------------------------------------------------------------------- + t +(1 row) + +alter database regression with IS_TEMPLATE false; +select datistemplate from pg_database where datname = 'regression'; + datistemplate +--------------------------------------------------------------------- + f +(1 row) + +DO $$ +DECLARE + v_version_num numeric; +BEGIN + SELECT current_setting('server_version_num')::numeric INTO v_version_num; + IF v_version_num >= 150000 THEN + set citus.log_remote_commands = true; + set citus.grep_remote_commands = '%ALTER DATABASE%'; + alter database regression REFRESH COLLATION VERSION; + set citus.log_remote_commands = false; + ELSE + RAISE NOTICE 'Skipping alter database .. REFRESH COLLATION VERSION for PostgreSQL 14'; + END IF; +END; +$$; +Skipping alter database .. REFRESH COLLATION VERSION for PostgreSQL 14 diff --git a/src/test/regress/sql/alter_database_propagation.sql b/src/test/regress/sql/alter_database_propagation.sql index a16008a73..759ddd09b 100644 --- a/src/test/regress/sql/alter_database_propagation.sql +++ b/src/test/regress/sql/alter_database_propagation.sql @@ -27,10 +27,24 @@ select datistemplate from pg_database where datname = 'regression'; alter database regression with IS_TEMPLATE false; select datistemplate from pg_database where datname = 'regression'; -set citus.log_remote_commands = true; -set citus.grep_remote_commands = '%ALTER DATABASE%'; -alter database regression REFRESH COLLATION VERSION; -set citus.log_remote_commands = false; + +DO $$ +DECLARE + v_version_num numeric; +BEGIN + SELECT current_setting('server_version_num')::numeric INTO v_version_num; + IF v_version_num >= 150000 THEN + set citus.log_remote_commands = true; + set citus.grep_remote_commands = '%ALTER DATABASE%'; + alter database regression REFRESH COLLATION VERSION; + set citus.log_remote_commands = false; + ELSE + RAISE NOTICE 'Skipping alter database .. REFRESH COLLATION VERSION for PostgreSQL 14'; + END IF; +END; +$$; + +