From a250c4f35067b8011db8f4600009d997c4e75c39 Mon Sep 17 00:00:00 2001 From: gledis69 Date: Wed, 20 Apr 2022 17:47:37 +0300 Subject: [PATCH] Fix current failing test --- src/backend/distributed/sql/citus--10.2-4--11.0-1.sql | 2 -- src/backend/distributed/sql/citus--11.0-2--11.1-1.sql | 3 +++ .../distributed/sql/downgrades/citus--11.0-1--10.2-4.sql | 1 + .../distributed/sql/downgrades/citus--11.1-1--11.0-2.sql | 9 +++++++++ .../lock_relation_if_exists/{11.0-1.sql => 11.1-1.sql} | 2 +- .../sql/udfs/lock_relation_if_exists/latest.sql | 2 +- src/test/regress/expected/multi_extension.out | 6 ++++-- src/test/regress/expected/multi_mx_hide_shard_names.out | 7 ++++++- src/test/regress/expected/upgrade_list_citus_objects.out | 2 +- src/test/regress/sql/multi_mx_hide_shard_names.sql | 2 +- 10 files changed, 27 insertions(+), 9 deletions(-) rename src/backend/distributed/sql/udfs/lock_relation_if_exists/{11.0-1.sql => 11.1-1.sql} (83%) diff --git a/src/backend/distributed/sql/citus--10.2-4--11.0-1.sql b/src/backend/distributed/sql/citus--10.2-4--11.0-1.sql index 5e8be15db..688cfad8c 100644 --- a/src/backend/distributed/sql/citus--10.2-4--11.0-1.sql +++ b/src/backend/distributed/sql/citus--10.2-4--11.0-1.sql @@ -105,5 +105,3 @@ GRANT SELECT ON pg_catalog.pg_dist_object TO public; #include "udfs/citus_pid_for_gpid/11.0-1.sql" #include "udfs/citus_coordinator_nodeid/11.0-1.sql" - -#include "udfs/lock_relation_if_exists/11.0-1.sql" diff --git a/src/backend/distributed/sql/citus--11.0-2--11.1-1.sql b/src/backend/distributed/sql/citus--11.0-2--11.1-1.sql index 374350d56..9b3f42759 100644 --- a/src/backend/distributed/sql/citus--11.0-2--11.1-1.sql +++ b/src/backend/distributed/sql/citus--11.0-2--11.1-1.sql @@ -6,3 +6,6 @@ DROP FUNCTION pg_catalog.worker_hash_partition_table(bigint, integer, text, text DROP FUNCTION pg_catalog.worker_merge_files_into_table(bigint, integer, text[], text[]); DROP FUNCTION pg_catalog.worker_range_partition_table(bigint, integer, text, text, oid, anyarray); DROP FUNCTION pg_catalog.worker_repartition_cleanup(bigint); +DROP FUNCTION pg_catalog.lock_relation_if_exists(text, text); + +#include "udfs/lock_relation_if_exists/11.1-1.sql" diff --git a/src/backend/distributed/sql/downgrades/citus--11.0-1--10.2-4.sql b/src/backend/distributed/sql/downgrades/citus--11.0-1--10.2-4.sql index b7f4018d9..1e53d4a2f 100644 --- a/src/backend/distributed/sql/downgrades/citus--11.0-1--10.2-4.sql +++ b/src/backend/distributed/sql/downgrades/citus--11.0-1--10.2-4.sql @@ -372,3 +372,4 @@ DROP FUNCTION pg_catalog.citus_nodeid_for_gpid(bigint); DROP FUNCTION pg_catalog.citus_pid_for_gpid(bigint); DROP FUNCTION pg_catalog.citus_coordinator_nodeid(); + diff --git a/src/backend/distributed/sql/downgrades/citus--11.1-1--11.0-2.sql b/src/backend/distributed/sql/downgrades/citus--11.1-1--11.0-2.sql index d03733bc7..ccca6b793 100644 --- a/src/backend/distributed/sql/downgrades/citus--11.1-1--11.0-2.sql +++ b/src/backend/distributed/sql/downgrades/citus--11.1-1--11.0-2.sql @@ -45,3 +45,12 @@ CREATE FUNCTION pg_catalog.worker_repartition_cleanup(bigint) LANGUAGE c STRICT AS 'MODULE_PATHNAME', $function$worker_repartition_cleanup$function$ + +DROP FUNCTION pg_catalog.lock_relation_if_exists(text, text, boolean); + +CREATE OR REPLACE FUNCTION pg_catalog.lock_relation_if_exists(table_name text, lock_mode text) +RETURNS BOOL +LANGUAGE C STRICT as 'MODULE_PATHNAME', +$$lock_relation_if_exists$$; +COMMENT ON FUNCTION pg_catalog.lock_relation_if_exists(table_name text, lock_mode text) +IS 'locks relation in the lock_mode if the relation exists'; diff --git a/src/backend/distributed/sql/udfs/lock_relation_if_exists/11.0-1.sql b/src/backend/distributed/sql/udfs/lock_relation_if_exists/11.1-1.sql similarity index 83% rename from src/backend/distributed/sql/udfs/lock_relation_if_exists/11.0-1.sql rename to src/backend/distributed/sql/udfs/lock_relation_if_exists/11.1-1.sql index c0b3880da..750e7077f 100644 --- a/src/backend/distributed/sql/udfs/lock_relation_if_exists/11.0-1.sql +++ b/src/backend/distributed/sql/udfs/lock_relation_if_exists/11.1-1.sql @@ -1,4 +1,4 @@ -CREATE OR REPLACE FUNCTION pg_catalog.lock_relation_if_exists(table_name text, lock_mode text, nowait boolean) +CREATE OR REPLACE FUNCTION pg_catalog.lock_relation_if_exists(table_name text, lock_mode text, nowait boolean default False) RETURNS BOOL LANGUAGE C STRICT as 'MODULE_PATHNAME', $$lock_relation_if_exists$$; diff --git a/src/backend/distributed/sql/udfs/lock_relation_if_exists/latest.sql b/src/backend/distributed/sql/udfs/lock_relation_if_exists/latest.sql index c0b3880da..750e7077f 100644 --- a/src/backend/distributed/sql/udfs/lock_relation_if_exists/latest.sql +++ b/src/backend/distributed/sql/udfs/lock_relation_if_exists/latest.sql @@ -1,4 +1,4 @@ -CREATE OR REPLACE FUNCTION pg_catalog.lock_relation_if_exists(table_name text, lock_mode text, nowait boolean) +CREATE OR REPLACE FUNCTION pg_catalog.lock_relation_if_exists(table_name text, lock_mode text, nowait boolean default False) RETURNS BOOL LANGUAGE C STRICT as 'MODULE_PATHNAME', $$lock_relation_if_exists$$; diff --git a/src/test/regress/expected/multi_extension.out b/src/test/regress/expected/multi_extension.out index 3c3c5b2ae..38cea4b8e 100644 --- a/src/test/regress/expected/multi_extension.out +++ b/src/test/regress/expected/multi_extension.out @@ -1034,8 +1034,9 @@ SELECT * FROM multi_extension.print_extension_changes(); -- Snapshot of state at 11.1-1 ALTER EXTENSION citus UPDATE TO '11.1-1'; SELECT * FROM multi_extension.print_extension_changes(); - previous_object | current_object + previous_object | current_object --------------------------------------------------------------------- + function lock_relation_if_exists(text,text) boolean | function worker_cleanup_job_schema_cache() void | function worker_create_schema(bigint,text) void | function worker_fetch_foreign_file(text,text,bigint,text[],integer[]) void | @@ -1044,7 +1045,8 @@ SELECT * FROM multi_extension.print_extension_changes(); function worker_merge_files_into_table(bigint,integer,text[],text[]) void | function worker_range_partition_table(bigint,integer,text,text,oid,anyarray) void | function worker_repartition_cleanup(bigint) void | -(8 rows) + | function lock_relation_if_exists(text,text,boolean) boolean +(10 rows) DROP TABLE multi_extension.prev_objects, multi_extension.extension_diff; -- show running version diff --git a/src/test/regress/expected/multi_mx_hide_shard_names.out b/src/test/regress/expected/multi_mx_hide_shard_names.out index c0265b282..00c4189b3 100644 --- a/src/test/regress/expected/multi_mx_hide_shard_names.out +++ b/src/test/regress/expected/multi_mx_hide_shard_names.out @@ -73,7 +73,12 @@ SELECT * FROM citus_shard_indexes_on_worker WHERE "Schema" = 'mx_hide_shard_name -- make sure that pg_class queries do not get blocked on table locks begin; -lock table test_table in access exclusive mode; +SELECT lock_relation_if_exists('test_table', 'ACCESS EXCLUSIVE'); + lock_relation_if_exists +--------------------------------------------------------------------- + t +(1 row) + prepare transaction 'take-aggressive-lock'; -- shards are hidden when using psql as application_name SELECT relname FROM pg_catalog.pg_class WHERE relnamespace = 'mx_hide_shard_names'::regnamespace ORDER BY relname; diff --git a/src/test/regress/expected/upgrade_list_citus_objects.out b/src/test/regress/expected/upgrade_list_citus_objects.out index ea7fe01a4..41d1ab5cf 100644 --- a/src/test/regress/expected/upgrade_list_citus_objects.out +++ b/src/test/regress/expected/upgrade_list_citus_objects.out @@ -158,7 +158,7 @@ ORDER BY 1; function isolate_tenant_to_new_shard(regclass,"any",text) function json_cat_agg(json) function jsonb_cat_agg(jsonb) - function lock_relation_if_exists(text,text) + function lock_relation_if_exists(text,text,boolean) function lock_shard_metadata(integer,bigint[]) function lock_shard_resources(integer,bigint[]) function master_activate_node(text,integer) diff --git a/src/test/regress/sql/multi_mx_hide_shard_names.sql b/src/test/regress/sql/multi_mx_hide_shard_names.sql index b56329150..4798db99e 100644 --- a/src/test/regress/sql/multi_mx_hide_shard_names.sql +++ b/src/test/regress/sql/multi_mx_hide_shard_names.sql @@ -43,7 +43,7 @@ SELECT * FROM citus_shard_indexes_on_worker WHERE "Schema" = 'mx_hide_shard_name -- make sure that pg_class queries do not get blocked on table locks begin; -lock table test_table in access exclusive mode; +SELECT lock_relation_if_exists('test_table', 'ACCESS EXCLUSIVE'); prepare transaction 'take-aggressive-lock'; -- shards are hidden when using psql as application_name