Move citus_internal_delete_shard_metadata

pull/7473/head
eaydingol 2024-01-31 13:24:02 +00:00
parent f734d399cf
commit 6ddb6d86d1
10 changed files with 37 additions and 12 deletions

View File

@ -1354,7 +1354,7 @@ ShardDeleteCommandList(ShardInterval *shardInterval)
StringInfo deleteShardCommand = makeStringInfo(); StringInfo deleteShardCommand = makeStringInfo();
appendStringInfo(deleteShardCommand, appendStringInfo(deleteShardCommand,
"SELECT citus_internal_delete_shard_metadata(%ld);", shardId); "SELECT citus_internal.delete_shard_metadata(%ld);", shardId);
return list_make1(deleteShardCommand->data); return list_make1(deleteShardCommand->data);
} }

View File

@ -1314,7 +1314,7 @@ DropShardListMetadata(List *shardIntervalList)
{ {
ListCell *commandCell = NULL; ListCell *commandCell = NULL;
/* send the commands one by one (calls citus_internal_delete_shard_metadata internally) */ /* send the commands one by one (calls citus_internal.delete_shard_metadata internally) */
List *shardMetadataDeleteCommandList = ShardDeleteCommandList(shardInterval); List *shardMetadataDeleteCommandList = ShardDeleteCommandList(shardInterval);
foreach(commandCell, shardMetadataDeleteCommandList) foreach(commandCell, shardMetadataDeleteCommandList)
{ {

View File

@ -36,3 +36,4 @@ REVOKE ALL ON FUNCTION citus_internal.start_management_transaction FROM PUBLIC;
#include "udfs/citus_internal_delete_colocation_metadata/12.2-1.sql" #include "udfs/citus_internal_delete_colocation_metadata/12.2-1.sql"
#include "udfs/citus_internal_delete_partition_metadata/12.2-1.sql" #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_placement_metadata/12.2-1.sql"
#include "udfs/citus_internal_delete_shard_metadata/12.2-1.sql"

View File

@ -32,4 +32,5 @@ DROP FUNCTION citus_internal.add_tenant_schema(oid, integer);
DROP FUNCTION citus_internal.adjust_local_clock_to_remote(pg_catalog.cluster_clock); DROP FUNCTION citus_internal.adjust_local_clock_to_remote(pg_catalog.cluster_clock);
DROP FUNCTION citus_internal.delete_colocation_metadata(int); DROP FUNCTION citus_internal.delete_colocation_metadata(int);
DROP FUNCTION citus_internal.delete_partition_metadata(regclass); DROP FUNCTION citus_internal.delete_partition_metadata(regclass);
DROP FUNCTION citus_internal.delete_placement_metadata(bigint); DROP FUNCTION citus_internal.delete_placement_metadata(bigint);
DROP FUNCTION citus_internal.delete_shard_metadata(bigint);

View File

@ -0,0 +1,14 @@
CREATE OR REPLACE FUNCTION citus_internal.delete_shard_metadata(shard_id bigint)
RETURNS void
LANGUAGE C STRICT
AS 'MODULE_PATHNAME', $$citus_internal_delete_shard_metadata$$;
COMMENT ON FUNCTION citus_internal.delete_shard_metadata(bigint) IS
'Deletes rows from pg_dist_shard and pg_dist_shard_placement with user checks';
CREATE OR REPLACE FUNCTION pg_catalog.citus_internal_delete_shard_metadata(shard_id bigint)
RETURNS void
LANGUAGE C STRICT
AS 'MODULE_PATHNAME';
COMMENT ON FUNCTION pg_catalog.citus_internal_delete_shard_metadata(bigint) IS
'Deletes rows from pg_dist_shard and pg_dist_shard_placement with user checks';

View File

@ -1,3 +1,10 @@
CREATE OR REPLACE FUNCTION citus_internal.delete_shard_metadata(shard_id bigint)
RETURNS void
LANGUAGE C STRICT
AS 'MODULE_PATHNAME', $$citus_internal_delete_shard_metadata$$;
COMMENT ON FUNCTION citus_internal.delete_shard_metadata(bigint) IS
'Deletes rows from pg_dist_shard and pg_dist_shard_placement with user checks';
CREATE OR REPLACE FUNCTION pg_catalog.citus_internal_delete_shard_metadata(shard_id bigint) CREATE OR REPLACE FUNCTION pg_catalog.citus_internal_delete_shard_metadata(shard_id bigint)
RETURNS void RETURNS void
LANGUAGE C STRICT LANGUAGE C STRICT

View File

@ -1197,7 +1197,7 @@ BEGIN TRANSACTION ISOLATION LEVEL READ COMMITTED;
\set VERBOSITY terse \set VERBOSITY terse
WITH shard_data(shardid) WITH shard_data(shardid)
AS (VALUES (1420007)) AS (VALUES (1420007))
SELECT citus_internal_delete_shard_metadata(shardid) FROM shard_data; SELECT citus_internal.delete_shard_metadata(shardid) FROM shard_data;
ERROR: must be owner of table super_user_table ERROR: must be owner of table super_user_table
ROLLBACK; ROLLBACK;
-- the user cannot delete non-existing shards -- the user cannot delete non-existing shards
@ -1212,7 +1212,7 @@ BEGIN TRANSACTION ISOLATION LEVEL READ COMMITTED;
\set VERBOSITY terse \set VERBOSITY terse
WITH shard_data(shardid) WITH shard_data(shardid)
AS (VALUES (1420100)) AS (VALUES (1420100))
SELECT citus_internal_delete_shard_metadata(shardid) FROM shard_data; SELECT citus_internal.delete_shard_metadata(shardid) FROM shard_data;
ERROR: Shard id does not exists: 1420100 ERROR: Shard id does not exists: 1420100
ROLLBACK; ROLLBACK;
-- sucessfully delete shards -- sucessfully delete shards
@ -1239,8 +1239,8 @@ BEGIN TRANSACTION ISOLATION LEVEL READ COMMITTED;
\set VERBOSITY terse \set VERBOSITY terse
WITH shard_data(shardid) WITH shard_data(shardid)
AS (VALUES (1420000)) AS (VALUES (1420000))
SELECT citus_internal_delete_shard_metadata(shardid) FROM shard_data; SELECT citus_internal.delete_shard_metadata(shardid) FROM shard_data;
citus_internal_delete_shard_metadata delete_shard_metadata
--------------------------------------------------------------------- ---------------------------------------------------------------------
(1 row) (1 row)

View File

@ -1435,10 +1435,11 @@ SELECT * FROM multi_extension.print_extension_changes();
| function citus_internal.delete_colocation_metadata(integer) void | function citus_internal.delete_colocation_metadata(integer) void
| function citus_internal.delete_partition_metadata(regclass) void | function citus_internal.delete_partition_metadata(regclass) void
| function citus_internal.delete_placement_metadata(bigint) void | function citus_internal.delete_placement_metadata(bigint) void
| function citus_internal.delete_shard_metadata(bigint) void
| function citus_internal.execute_command_on_remote_nodes_as_user(text,text) 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.mark_object_distributed(oid,text,oid,text) void
| function citus_internal.start_management_transaction(xid8) void | function citus_internal.start_management_transaction(xid8) void
(16 rows) (17 rows)
DROP TABLE multi_extension.prev_objects, multi_extension.extension_diff; DROP TABLE multi_extension.prev_objects, multi_extension.extension_diff;
-- show running version -- show running version

View File

@ -69,6 +69,7 @@ ORDER BY 1;
function citus_internal.delete_colocation_metadata(integer) function citus_internal.delete_colocation_metadata(integer)
function citus_internal.delete_partition_metadata(regclass) function citus_internal.delete_partition_metadata(regclass)
function citus_internal.delete_placement_metadata(bigint) function citus_internal.delete_placement_metadata(bigint)
function citus_internal.delete_shard_metadata(bigint)
function citus_internal.execute_command_on_remote_nodes_as_user(text,text) function citus_internal.execute_command_on_remote_nodes_as_user(text,text)
function citus_internal.find_groupid_for_node(text,integer) function citus_internal.find_groupid_for_node(text,integer)
function citus_internal.mark_object_distributed(oid,text,oid,text) function citus_internal.mark_object_distributed(oid,text,oid,text)
@ -359,5 +360,5 @@ ORDER BY 1;
view citus_stat_tenants_local view citus_stat_tenants_local
view pg_dist_shard_placement view pg_dist_shard_placement
view time_partitions view time_partitions
(349 rows) (350 rows)

View File

@ -745,7 +745,7 @@ BEGIN TRANSACTION ISOLATION LEVEL READ COMMITTED;
\set VERBOSITY terse \set VERBOSITY terse
WITH shard_data(shardid) WITH shard_data(shardid)
AS (VALUES (1420007)) AS (VALUES (1420007))
SELECT citus_internal_delete_shard_metadata(shardid) FROM shard_data; SELECT citus_internal.delete_shard_metadata(shardid) FROM shard_data;
ROLLBACK; ROLLBACK;
-- the user cannot delete non-existing shards -- the user cannot delete non-existing shards
@ -755,7 +755,7 @@ BEGIN TRANSACTION ISOLATION LEVEL READ COMMITTED;
\set VERBOSITY terse \set VERBOSITY terse
WITH shard_data(shardid) WITH shard_data(shardid)
AS (VALUES (1420100)) AS (VALUES (1420100))
SELECT citus_internal_delete_shard_metadata(shardid) FROM shard_data; SELECT citus_internal.delete_shard_metadata(shardid) FROM shard_data;
ROLLBACK; ROLLBACK;
@ -770,7 +770,7 @@ BEGIN TRANSACTION ISOLATION LEVEL READ COMMITTED;
\set VERBOSITY terse \set VERBOSITY terse
WITH shard_data(shardid) WITH shard_data(shardid)
AS (VALUES (1420000)) AS (VALUES (1420000))
SELECT citus_internal_delete_shard_metadata(shardid) FROM shard_data; SELECT citus_internal.delete_shard_metadata(shardid) FROM shard_data;
SELECT count(*) FROM pg_dist_shard WHERE shardid = 1420000; SELECT count(*) FROM pg_dist_shard WHERE shardid = 1420000;
SELECT count(*) FROM pg_dist_placement WHERE shardid = 1420000; SELECT count(*) FROM pg_dist_placement WHERE shardid = 1420000;