From 922b94348399bc0e5648b507d3467eab4bfc1c17 Mon Sep 17 00:00:00 2001 From: eaydingol Date: Wed, 31 Jan 2024 13:27:10 +0000 Subject: [PATCH] Move citus_internal_delete_tenant_schema --- .../distributed/metadata/metadata_sync.c | 2 +- .../distributed/sql/citus--12.1-1--12.2-1.sql | 1 + .../sql/downgrades/citus--12.2-1--12.1-1.sql | 3 ++- .../12.2-1.sql | 17 +++++++++++++++++ .../latest.sql | 9 +++++++++ src/test/regress/expected/multi_extension.out | 3 ++- .../regress/expected/schema_based_sharding.out | 2 +- .../expected/upgrade_list_citus_objects.out | 3 ++- src/test/regress/sql/schema_based_sharding.sql | 2 +- 9 files changed, 36 insertions(+), 6 deletions(-) create mode 100644 src/backend/distributed/sql/udfs/citus_internal_delete_tenant_schema/12.2-1.sql diff --git a/src/backend/distributed/metadata/metadata_sync.c b/src/backend/distributed/metadata/metadata_sync.c index 579a16e40..bf23af52f 100644 --- a/src/backend/distributed/metadata/metadata_sync.c +++ b/src/backend/distributed/metadata/metadata_sync.c @@ -4241,7 +4241,7 @@ TenantSchemaDeleteCommand(char *schemaName) { StringInfo command = makeStringInfo(); appendStringInfo(command, - "SELECT pg_catalog.citus_internal_delete_tenant_schema(%s)", + "SELECT citus_internal.delete_tenant_schema(%s)", RemoteSchemaIdExpressionByName(schemaName)); return command->data; diff --git a/src/backend/distributed/sql/citus--12.1-1--12.2-1.sql b/src/backend/distributed/sql/citus--12.1-1--12.2-1.sql index e6881c7c7..0042fdaa1 100644 --- a/src/backend/distributed/sql/citus--12.1-1--12.2-1.sql +++ b/src/backend/distributed/sql/citus--12.1-1--12.2-1.sql @@ -37,3 +37,4 @@ REVOKE ALL ON FUNCTION citus_internal.start_management_transaction FROM PUBLIC; #include "udfs/citus_internal_delete_partition_metadata/12.2-1.sql" #include "udfs/citus_internal_delete_placement_metadata/12.2-1.sql" #include "udfs/citus_internal_delete_shard_metadata/12.2-1.sql" +#include "udfs/citus_internal_delete_tenant_schema/12.2-1.sql" diff --git a/src/backend/distributed/sql/downgrades/citus--12.2-1--12.1-1.sql b/src/backend/distributed/sql/downgrades/citus--12.2-1--12.1-1.sql index 32b6e8eed..87becc08f 100644 --- a/src/backend/distributed/sql/downgrades/citus--12.2-1--12.1-1.sql +++ b/src/backend/distributed/sql/downgrades/citus--12.2-1--12.1-1.sql @@ -33,4 +33,5 @@ DROP FUNCTION citus_internal.adjust_local_clock_to_remote(pg_catalog.cluster_clo DROP FUNCTION citus_internal.delete_colocation_metadata(int); DROP FUNCTION citus_internal.delete_partition_metadata(regclass); DROP FUNCTION citus_internal.delete_placement_metadata(bigint); -DROP FUNCTION citus_internal.delete_shard_metadata(bigint); \ No newline at end of file +DROP FUNCTION citus_internal.delete_shard_metadata(bigint); +DROP FUNCTION citus_internal.delete_tenant_schema(oid); \ No newline at end of file diff --git a/src/backend/distributed/sql/udfs/citus_internal_delete_tenant_schema/12.2-1.sql b/src/backend/distributed/sql/udfs/citus_internal_delete_tenant_schema/12.2-1.sql new file mode 100644 index 000000000..2c36108b4 --- /dev/null +++ b/src/backend/distributed/sql/udfs/citus_internal_delete_tenant_schema/12.2-1.sql @@ -0,0 +1,17 @@ +CREATE OR REPLACE FUNCTION citus_internal.delete_tenant_schema(schema_id Oid) + RETURNS void + LANGUAGE C + VOLATILE + AS 'MODULE_PATHNAME', $$citus_internal_delete_tenant_schema$$; + +COMMENT ON FUNCTION citus_internal.delete_tenant_schema(Oid) IS + 'delete given tenant schema from pg_dist_schema'; + +CREATE OR REPLACE FUNCTION pg_catalog.citus_internal_delete_tenant_schema(schema_id Oid) + RETURNS void + LANGUAGE C + VOLATILE + AS 'MODULE_PATHNAME'; + +COMMENT ON FUNCTION pg_catalog.citus_internal_delete_tenant_schema(Oid) IS + 'delete given tenant schema from pg_dist_schema'; diff --git a/src/backend/distributed/sql/udfs/citus_internal_delete_tenant_schema/latest.sql b/src/backend/distributed/sql/udfs/citus_internal_delete_tenant_schema/latest.sql index 4a2bf0067..2c36108b4 100644 --- a/src/backend/distributed/sql/udfs/citus_internal_delete_tenant_schema/latest.sql +++ b/src/backend/distributed/sql/udfs/citus_internal_delete_tenant_schema/latest.sql @@ -1,3 +1,12 @@ +CREATE OR REPLACE FUNCTION citus_internal.delete_tenant_schema(schema_id Oid) + RETURNS void + LANGUAGE C + VOLATILE + AS 'MODULE_PATHNAME', $$citus_internal_delete_tenant_schema$$; + +COMMENT ON FUNCTION citus_internal.delete_tenant_schema(Oid) IS + 'delete given tenant schema from pg_dist_schema'; + CREATE OR REPLACE FUNCTION pg_catalog.citus_internal_delete_tenant_schema(schema_id Oid) RETURNS void LANGUAGE C diff --git a/src/test/regress/expected/multi_extension.out b/src/test/regress/expected/multi_extension.out index 635c2cc09..dcd325367 100644 --- a/src/test/regress/expected/multi_extension.out +++ b/src/test/regress/expected/multi_extension.out @@ -1436,10 +1436,11 @@ SELECT * FROM multi_extension.print_extension_changes(); | function citus_internal.delete_partition_metadata(regclass) void | function citus_internal.delete_placement_metadata(bigint) void | function citus_internal.delete_shard_metadata(bigint) void + | function citus_internal.delete_tenant_schema(oid) void | function citus_internal.execute_command_on_remote_nodes_as_user(text,text) void | function citus_internal.mark_object_distributed(oid,text,oid,text) void | function citus_internal.start_management_transaction(xid8) void -(17 rows) +(18 rows) DROP TABLE multi_extension.prev_objects, multi_extension.extension_diff; -- show running version diff --git a/src/test/regress/expected/schema_based_sharding.out b/src/test/regress/expected/schema_based_sharding.out index 48cf4e207..5204d60d5 100644 --- a/src/test/regress/expected/schema_based_sharding.out +++ b/src/test/regress/expected/schema_based_sharding.out @@ -17,7 +17,7 @@ SELECT citus_internal.add_tenant_schema(NULL, 1); ERROR: schema_id cannot be NULL SELECT citus_internal.add_tenant_schema(1, NULL); ERROR: colocation_id cannot be NULL -SELECT citus_internal_delete_tenant_schema(NULL); +SELECT citus_internal.delete_tenant_schema(NULL); ERROR: schema_id cannot be NULL SELECT citus_internal_unregister_tenant_schema_globally(1, NULL); ERROR: schema_name cannot be NULL diff --git a/src/test/regress/expected/upgrade_list_citus_objects.out b/src/test/regress/expected/upgrade_list_citus_objects.out index 29ff28b13..a4f948ee6 100644 --- a/src/test/regress/expected/upgrade_list_citus_objects.out +++ b/src/test/regress/expected/upgrade_list_citus_objects.out @@ -70,6 +70,7 @@ ORDER BY 1; function citus_internal.delete_partition_metadata(regclass) function citus_internal.delete_placement_metadata(bigint) function citus_internal.delete_shard_metadata(bigint) + function citus_internal.delete_tenant_schema(oid) function citus_internal.execute_command_on_remote_nodes_as_user(text,text) function citus_internal.find_groupid_for_node(text,integer) function citus_internal.mark_object_distributed(oid,text,oid,text) @@ -360,5 +361,5 @@ ORDER BY 1; view citus_stat_tenants_local view pg_dist_shard_placement view time_partitions -(350 rows) +(351 rows) diff --git a/src/test/regress/sql/schema_based_sharding.sql b/src/test/regress/sql/schema_based_sharding.sql index 419524a9d..af5c201f4 100644 --- a/src/test/regress/sql/schema_based_sharding.sql +++ b/src/test/regress/sql/schema_based_sharding.sql @@ -14,7 +14,7 @@ SET client_min_messages TO NOTICE; -- fail on NULL input. SELECT citus_internal.add_tenant_schema(NULL, 1); SELECT citus_internal.add_tenant_schema(1, NULL); -SELECT citus_internal_delete_tenant_schema(NULL); +SELECT citus_internal.delete_tenant_schema(NULL); SELECT citus_internal_unregister_tenant_schema_globally(1, NULL); SELECT citus_internal_unregister_tenant_schema_globally(NULL, 'text');