From adc71b38edfc763303020664540e5f5025471376 Mon Sep 17 00:00:00 2001 From: Burak Velioglu Date: Sun, 30 Jan 2022 22:00:20 +0300 Subject: [PATCH] Add test dropping object after dropping table --- .../non_super_user_object_metadata.out | 34 +++++++++++++++++++ .../sql/non_super_user_object_metadata.sql | 12 +++++++ 2 files changed, 46 insertions(+) diff --git a/src/test/regress/expected/non_super_user_object_metadata.out b/src/test/regress/expected/non_super_user_object_metadata.out index dab709e46..ebbf9510e 100644 --- a/src/test/regress/expected/non_super_user_object_metadata.out +++ b/src/test/regress/expected/non_super_user_object_metadata.out @@ -416,6 +416,40 @@ SELECT * FROM run_command_on_workers($$SELECT * FROM (SELECT pg_identify_object_ localhost | 57638 | t | (extension,{ltree},{}) (2 rows) +-- Show that dropping a distributed table drops the pg_dist_object entry on worker +CREATE TABLE extension_schema.table_to_check_object(id int); +SELECT create_distributed_table('extension_schema.table_to_check_object', 'id'); + create_distributed_table +--------------------------------------------------------------------- + +(1 row) + +SELECT * FROM (SELECT pg_identify_object_as_address(classid, objid, objsubid) as obj_identifier from citus.pg_dist_object) as obj_identifiers where obj_identifier::text like '%table_to_check_object%'; + obj_identifier +--------------------------------------------------------------------- + (table,"{extension_schema,table_to_check_object}",{}) +(1 row) + +SELECT * FROM run_command_on_workers($$SELECT * FROM (SELECT pg_identify_object_as_address(classid, objid, objsubid) as obj_identifier from citus.pg_dist_object) as obj_identifiers where obj_identifier::text like '%table_to_check_object%';$$) ORDER BY 1,2; + nodename | nodeport | success | result +--------------------------------------------------------------------- + localhost | 57637 | t | (table,"{extension_schema,table_to_check_object}",{}) + localhost | 57638 | t | (table,"{extension_schema,table_to_check_object}",{}) +(2 rows) + +DROP TABLE extension_schema.table_to_check_object; +SELECT * FROM (SELECT pg_identify_object_as_address(classid, objid, objsubid) as obj_identifier from citus.pg_dist_object) as obj_identifiers where obj_identifier::text like '%table_to_check_object%'; + obj_identifier +--------------------------------------------------------------------- +(0 rows) + +SELECT * FROM run_command_on_workers($$SELECT * FROM (SELECT pg_identify_object_as_address(classid, objid, objsubid) as obj_identifier from citus.pg_dist_object) as obj_identifiers where obj_identifier::text like '%table_to_check_object%';$$) ORDER BY 1,2; + nodename | nodeport | success | result +--------------------------------------------------------------------- + localhost | 57637 | t | + localhost | 57638 | t | +(2 rows) + -- Revert the settings for following tests RESET citus.enable_ddl_propagation; RESET citus.shard_replication_factor; diff --git a/src/test/regress/sql/non_super_user_object_metadata.sql b/src/test/regress/sql/non_super_user_object_metadata.sql index 99656e944..67e9687a3 100644 --- a/src/test/regress/sql/non_super_user_object_metadata.sql +++ b/src/test/regress/sql/non_super_user_object_metadata.sql @@ -177,6 +177,18 @@ SELECT * FROM run_command_on_workers($$SELECT * FROM (SELECT pg_identify_object_ SELECT * FROM (SELECT pg_identify_object_as_address(classid, objid, objsubid) as obj_identifier from citus.pg_dist_object) as obj_identifiers where obj_identifier::text like '%{ltree}%'; SELECT * FROM run_command_on_workers($$SELECT * FROM (SELECT pg_identify_object_as_address(classid, objid, objsubid) as obj_identifier from citus.pg_dist_object) as obj_identifiers where obj_identifier::text like '%{ltree}%';$$) ORDER BY 1,2; +-- Show that dropping a distributed table drops the pg_dist_object entry on worker +CREATE TABLE extension_schema.table_to_check_object(id int); +SELECT create_distributed_table('extension_schema.table_to_check_object', 'id'); + +SELECT * FROM (SELECT pg_identify_object_as_address(classid, objid, objsubid) as obj_identifier from citus.pg_dist_object) as obj_identifiers where obj_identifier::text like '%table_to_check_object%'; +SELECT * FROM run_command_on_workers($$SELECT * FROM (SELECT pg_identify_object_as_address(classid, objid, objsubid) as obj_identifier from citus.pg_dist_object) as obj_identifiers where obj_identifier::text like '%table_to_check_object%';$$) ORDER BY 1,2; + +DROP TABLE extension_schema.table_to_check_object; + +SELECT * FROM (SELECT pg_identify_object_as_address(classid, objid, objsubid) as obj_identifier from citus.pg_dist_object) as obj_identifiers where obj_identifier::text like '%table_to_check_object%'; +SELECT * FROM run_command_on_workers($$SELECT * FROM (SELECT pg_identify_object_as_address(classid, objid, objsubid) as obj_identifier from citus.pg_dist_object) as obj_identifiers where obj_identifier::text like '%table_to_check_object%';$$) ORDER BY 1,2; + -- Revert the settings for following tests RESET citus.enable_ddl_propagation; RESET citus.shard_replication_factor;