From fd9b3f4ae9a1a79fa15849f8fd901d5a71203eb0 Mon Sep 17 00:00:00 2001 From: Naisila Puka <37271756+naisila@users.noreply.github.com> Date: Tue, 6 Sep 2022 11:04:14 +0300 Subject: [PATCH] Add tests to make sure distributed clone trigger rename fails in PG15 (#6291) Relevant PG commit: 80ba4bb383538a2ee846fece6a7b8da9518b6866 --- src/test/regress/expected/pg15.out | 4 ++++ .../upgrade_distributed_triggers_after.out | 17 +++++++++++++++++ src/test/regress/sql/pg15.sql | 3 +++ .../sql/upgrade_distributed_triggers_after.sql | 5 +++++ 4 files changed, 29 insertions(+) diff --git a/src/test/regress/expected/pg15.out b/src/test/regress/expected/pg15.out index f59586b7a..1b214f4a9 100644 --- a/src/test/regress/expected/pg15.out +++ b/src/test/regress/expected/pg15.out @@ -168,6 +168,10 @@ SELECT * FROM sale_triggers ORDER BY 1, 2; truncate_trigger_xxxxxxx | sale_newyork | O (6 rows) +-- test that we can't rename a distributed clone trigger +ALTER TRIGGER "new_record_sale_trigger" ON "pg15"."sale_newyork" RENAME TO "another_trigger_name"; +ERROR: cannot rename trigger "new_record_sale_trigger" on table "sale_newyork" +HINT: Rename trigger on partitioned table "sale" instead. -- -- In PG15, For GENERATED columns, all dependencies of the generation -- expression are recorded as NORMAL dependencies of the column itself. diff --git a/src/test/regress/expected/upgrade_distributed_triggers_after.out b/src/test/regress/expected/upgrade_distributed_triggers_after.out index 591f33401..2e3f7330b 100644 --- a/src/test/regress/expected/upgrade_distributed_triggers_after.out +++ b/src/test/regress/expected/upgrade_distributed_triggers_after.out @@ -218,6 +218,23 @@ SELECT * FROM sale_triggers ORDER BY 1, 2; truncate_trigger_xxxxxxx | sale_alabama | O (12 rows) +-- after upgrade to PG15, test that we can't rename a distributed clone trigger +ALTER TRIGGER "renamed_yet_another_trigger" ON "sale_alabama" RENAME TO "another_trigger_name"; +ERROR: cannot rename trigger "renamed_yet_another_trigger" on table "sale_alabama" +HINT: Rename trigger on partitioned table "sale" instead. +SELECT count(*) FROM pg_trigger WHERE tgname like 'another_trigger_name%'; + count +--------------------------------------------------------------------- + 0 +(1 row) + +SELECT run_command_on_workers($$SELECT count(*) FROM pg_trigger WHERE tgname like 'another_trigger_name%';$$); + run_command_on_workers +--------------------------------------------------------------------- + (localhost,10201,t,0) + (localhost,10202,t,0) +(2 rows) + DROP SCHEMA upgrade_distributed_triggers CASCADE; NOTICE: drop cascades to 4 other objects DETAIL: drop cascades to function record_sale() diff --git a/src/test/regress/sql/pg15.sql b/src/test/regress/sql/pg15.sql index cefc419e8..73cee8054 100644 --- a/src/test/regress/sql/pg15.sql +++ b/src/test/regress/sql/pg15.sql @@ -114,6 +114,9 @@ SELECT * FROM sale_triggers ORDER BY 1, 2; ALTER TRIGGER "record_sale_trigger" ON "pg15"."sale" RENAME TO "new_record_sale_trigger"; SELECT * FROM sale_triggers ORDER BY 1, 2; +-- test that we can't rename a distributed clone trigger +ALTER TRIGGER "new_record_sale_trigger" ON "pg15"."sale_newyork" RENAME TO "another_trigger_name"; + -- -- In PG15, For GENERATED columns, all dependencies of the generation -- expression are recorded as NORMAL dependencies of the column itself. diff --git a/src/test/regress/sql/upgrade_distributed_triggers_after.sql b/src/test/regress/sql/upgrade_distributed_triggers_after.sql index bcbd7432e..681f1896b 100644 --- a/src/test/regress/sql/upgrade_distributed_triggers_after.sql +++ b/src/test/regress/sql/upgrade_distributed_triggers_after.sql @@ -69,4 +69,9 @@ ALTER TRIGGER "yet_another_trigger" ON "sale" RENAME TO "renamed_yet_another_tri SELECT * FROM sale_triggers ORDER BY 1, 2; +-- after upgrade to PG15, test that we can't rename a distributed clone trigger +ALTER TRIGGER "renamed_yet_another_trigger" ON "sale_alabama" RENAME TO "another_trigger_name"; +SELECT count(*) FROM pg_trigger WHERE tgname like 'another_trigger_name%'; +SELECT run_command_on_workers($$SELECT count(*) FROM pg_trigger WHERE tgname like 'another_trigger_name%';$$); + DROP SCHEMA upgrade_distributed_triggers CASCADE;