From 55278c90623a6d84cf47064ab32a1d2671f3e57e Mon Sep 17 00:00:00 2001 From: Burak Velioglu Date: Wed, 13 Apr 2022 02:10:12 +0300 Subject: [PATCH] Fix multi-1 tests --- .../regress/expected/drop_partitioned_table.out | 15 --------------- .../regress/expected/function_propagation.out | 6 +----- .../regress/expected/local_dist_join_mixed.out | 13 +++++++++++++ src/test/regress/expected/local_table_join.out | 3 +++ .../expected/multi_generate_ddl_commands.out | 5 ++++- .../regress/expected/multi_router_planner.out | 2 ++ .../expected/multi_router_planner_fast_path.out | 2 ++ .../expected/propagate_extension_commands.out | 3 +++ ...replicate_reference_tables_to_coordinator.out | 3 +++ src/test/regress/output/multi_copy.source | 2 +- src/test/regress/sql/drop_partitioned_table.sql | 16 ---------------- src/test/regress/sql/function_propagation.sql | 2 +- .../regress/sql/multi_generate_ddl_commands.sql | 2 +- 13 files changed, 34 insertions(+), 40 deletions(-) diff --git a/src/test/regress/expected/drop_partitioned_table.out b/src/test/regress/expected/drop_partitioned_table.out index 846656aaf..2cfd6a7b7 100644 --- a/src/test/regress/expected/drop_partitioned_table.out +++ b/src/test/regress/expected/drop_partitioned_table.out @@ -46,21 +46,6 @@ FROM pg_catalog.pg_class c WHERE n.nspname IN ('drop_partitioned_table', 'schema1') AND c.relkind IN ('r','p') ORDER BY 1, 2; -\c - - - :worker_1_port -SET search_path = drop_partitioned_table; -CREATE VIEW tables_info AS -SELECT n.nspname as "Schema", - c.relname as "Name", - CASE c.relkind WHEN 'r' THEN 'table' WHEN 'p' THEN 'partitioned table' END as "Type", - pg_catalog.pg_get_userbyid(c.relowner) as "Owner" -FROM pg_catalog.pg_class c - LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace - LEFT JOIN pg_user u ON u.usesysid = c.relowner -WHERE n.nspname IN ('drop_partitioned_table', 'schema1') - AND c.relkind IN ('r','p') -ORDER BY 1, 2; -\c - - - :master_port -SET search_path = drop_partitioned_table; SET citus.next_shard_id TO 721000; -- CASE 1 -- Dropping the parent table diff --git a/src/test/regress/expected/function_propagation.out b/src/test/regress/expected/function_propagation.out index 1ec5736f5..3f39a2578 100644 --- a/src/test/regress/expected/function_propagation.out +++ b/src/test/regress/expected/function_propagation.out @@ -177,7 +177,7 @@ SELECT * FROM run_command_on_workers($$SELECT pg_identify_object_as_address(clas localhost | 57638 | t | (function,"{function_propagation_schema,func_6}",{function_propagation_schema.function_prop_table}) (2 rows) --- Views are not supported +-- Views are supported CREATE VIEW function_prop_view AS SELECT * FROM function_prop_table; CREATE OR REPLACE FUNCTION func_7(param_1 function_prop_view) RETURNS int @@ -187,8 +187,6 @@ BEGIN return 1; END; $$; -WARNING: "function func_7(function_prop_view)" has dependency on unsupported object "view function_prop_view" -DETAIL: "function func_7(function_prop_view)" will be created only locally CREATE OR REPLACE FUNCTION func_8(param_1 int) RETURNS function_prop_view LANGUAGE plpgsql AS @@ -197,8 +195,6 @@ BEGIN return 1; END; $$; -WARNING: "function func_8(integer)" has dependency on unsupported object "view function_prop_view" -DETAIL: "function func_8(integer)" will be created only locally -- Check within transaction BEGIN; CREATE TYPE type_in_transaction AS (a int, b int); diff --git a/src/test/regress/expected/local_dist_join_mixed.out b/src/test/regress/expected/local_dist_join_mixed.out index 5566186b5..4368465da 100644 --- a/src/test/regress/expected/local_dist_join_mixed.out +++ b/src/test/regress/expected/local_dist_join_mixed.out @@ -358,7 +358,12 @@ DEBUG: Plan XXX query after replacing subqueries and CTEs: SELECT count(*) AS c (1 row) CREATE VIEW local_regular_view AS SELECT * FROM local; +WARNING: "view local_regular_view" has dependency to "table local" that is not in Citus' metadata +DETAIL: "view local_regular_view" will be created only locally +HINT: Distribute "table local" first to distribute "view local_regular_view" CREATE VIEW dist_regular_view AS SELECT * FROM distributed; +DEBUG: switching to sequential query execution mode +DETAIL: A command for a distributed view is run. To make sure subsequent commands see the view correctly we need to make sure to use only one connection for all future commands SELECT count(*) FROM distributed JOIN local_regular_view USING (id); DEBUG: generating subplan XXX_1 for subquery SELECT local.id, local.title FROM local_dist_join_mixed.local DEBUG: Plan XXX query after replacing subqueries and CTEs: SELECT count(*) AS count FROM (local_dist_join_mixed.distributed JOIN (SELECT intermediate_result.id, intermediate_result.title FROM read_intermediate_result('XXX_1'::text, 'binary'::citus_copy_format) intermediate_result(id bigint, title text)) local_regular_view USING (id)) @@ -1612,3 +1617,11 @@ drop cascades to table unlogged_local drop cascades to materialized view mat_view drop cascades to view local_regular_view drop cascades to view dist_regular_view +DEBUG: drop cascades to view local_dist_join_mixed.dist_regular_view +DETAIL: from localhost:xxxxx +CONTEXT: SQL statement "SELECT master_remove_distributed_table_metadata_from_workers(v_obj.objid, v_obj.schema_name, v_obj.object_name)" +PL/pgSQL function citus_drop_trigger() line XX at PERFORM +DEBUG: drop cascades to view local_dist_join_mixed.dist_regular_view +DETAIL: from localhost:xxxxx +CONTEXT: SQL statement "SELECT master_remove_distributed_table_metadata_from_workers(v_obj.objid, v_obj.schema_name, v_obj.object_name)" +PL/pgSQL function citus_drop_trigger() line XX at PERFORM diff --git a/src/test/regress/expected/local_table_join.out b/src/test/regress/expected/local_table_join.out index effe23b0d..90737a2ed 100644 --- a/src/test/regress/expected/local_table_join.out +++ b/src/test/regress/expected/local_table_join.out @@ -991,6 +991,9 @@ DEBUG: Plan XXX query after replacing subqueries and CTEs: SELECT count(*) AS c (1 row) CREATE view loc_view AS SELECT * FROM postgres_table WHERE key > 0; +WARNING: "view loc_view" has dependency to "table postgres_table" that is not in Citus' metadata +DETAIL: "view loc_view" will be created only locally +HINT: Distribute "table postgres_table" first to distribute "view loc_view" UPDATE loc_view SET key = (SELECT COUNT(*) FROM distributed_table); DEBUG: generating subplan XXX_1 for subquery SELECT count(*) AS count FROM local_table_join.distributed_table DEBUG: Plan XXX query after replacing subqueries and CTEs: UPDATE local_table_join.postgres_table SET key = (SELECT intermediate_result.count FROM read_intermediate_result('XXX_1'::text, 'binary'::citus_copy_format) intermediate_result(count bigint)) FROM local_table_join.postgres_table WHERE (postgres_table.key OPERATOR(pg_catalog.>) 0) diff --git a/src/test/regress/expected/multi_generate_ddl_commands.out b/src/test/regress/expected/multi_generate_ddl_commands.out index 6aae20f9b..db211eb49 100644 --- a/src/test/regress/expected/multi_generate_ddl_commands.out +++ b/src/test/regress/expected/multi_generate_ddl_commands.out @@ -166,8 +166,11 @@ SELECT master_get_table_ddl_events('fiddly_table'); ALTER TABLE public.fiddly_table OWNER TO postgres (3 rows) --- propagating views is not supported +-- propagating views is not supported if local table dependency exists CREATE VIEW local_view AS SELECT * FROM simple_table; +WARNING: "view local_view" has dependency to "table simple_table" that is not in Citus' metadata +DETAIL: "view local_view" will be created only locally +HINT: Distribute "table simple_table" first to distribute "view local_view" SELECT master_get_table_ddl_events('local_view'); ERROR: local_view is not a regular, foreign or partitioned table -- clean up diff --git a/src/test/regress/expected/multi_router_planner.out b/src/test/regress/expected/multi_router_planner.out index cc503f766..9439d4b2e 100644 --- a/src/test/regress/expected/multi_router_planner.out +++ b/src/test/regress/expected/multi_router_planner.out @@ -1611,6 +1611,8 @@ DEBUG: Creating router plan -- same scenario with a view CREATE VIEW num_db AS SELECT s.datid FROM number1() s LEFT JOIN pg_database d ON s.datid = d.oid; +DEBUG: switching to sequential query execution mode +DETAIL: A command for a distributed view is run. To make sure subsequent commands see the view correctly we need to make sure to use only one connection for all future commands SELECT 1 FROM authors_reference r JOIN num_db ON (r.id = num_db.datid) LIMIT 1; DEBUG: found no worker with all shard placements DEBUG: function does not have co-located tables diff --git a/src/test/regress/expected/multi_router_planner_fast_path.out b/src/test/regress/expected/multi_router_planner_fast_path.out index 8fb8917ab..826c50fcb 100644 --- a/src/test/regress/expected/multi_router_planner_fast_path.out +++ b/src/test/regress/expected/multi_router_planner_fast_path.out @@ -1996,6 +1996,8 @@ DEBUG: Creating router plan -- views internally become subqueries, so not fast-path router query CREATE VIEW test_view AS SELECT * FROM articles_hash WHERE author_id = 1; +DEBUG: switching to sequential query execution mode +DETAIL: A command for a distributed view is run. To make sure subsequent commands see the view correctly we need to make sure to use only one connection for all future commands SELECT * FROM test_view; DEBUG: Creating router plan DEBUG: query has a single distribution column value: 1 diff --git a/src/test/regress/expected/propagate_extension_commands.out b/src/test/regress/expected/propagate_extension_commands.out index 41c012641..e7feb5221 100644 --- a/src/test/regress/expected/propagate_extension_commands.out +++ b/src/test/regress/expected/propagate_extension_commands.out @@ -305,6 +305,9 @@ SELECT run_command_on_workers($$SELECT count(*) FROM pg_extension WHERE extname -- propagated to the workers. the user should run it manually on the workers CREATE TABLE t1 (A int); CREATE VIEW v1 AS select * from t1; +WARNING: "view v1" has dependency to "table t1" that is not in Citus' metadata +DETAIL: "view v1" will be created only locally +HINT: Distribute "table t1" first to distribute "view v1" ALTER EXTENSION seg ADD VIEW v1; ALTER EXTENSION seg DROP VIEW v1; DROP VIEW v1; diff --git a/src/test/regress/expected/replicate_reference_tables_to_coordinator.out b/src/test/regress/expected/replicate_reference_tables_to_coordinator.out index 948adb050..a23b44ffa 100644 --- a/src/test/regress/expected/replicate_reference_tables_to_coordinator.out +++ b/src/test/regress/expected/replicate_reference_tables_to_coordinator.out @@ -382,6 +382,9 @@ $Q$); (2 rows) CREATE VIEW local_table_v AS SELECT * FROM local_table WHERE a BETWEEN 1 AND 10; +WARNING: "view local_table_v" has dependency to "table local_table" that is not in Citus' metadata +DETAIL: "view local_table_v" will be created only locally +HINT: Distribute "table local_table" first to distribute "view local_table_v" SELECT public.coordinator_plan($Q$ EXPLAIN (COSTS FALSE) SELECT * FROM squares JOIN local_table_v ON squares.a = local_table_v.a; diff --git a/src/test/regress/output/multi_copy.source b/src/test/regress/output/multi_copy.source index f709263fd..6beebd840 100644 --- a/src/test/regress/output/multi_copy.source +++ b/src/test/regress/output/multi_copy.source @@ -636,7 +636,7 @@ INSERT INTO pg_catalog.pg_dist_object(classid, objid, objsubid) values('pg_class INSERT INTO pg_catalog.pg_dist_object(classid, objid, objsubid) values('pg_class'::regclass::oid, 'second_dustbunnies'::regclass::oid, 0); SELECT 1 FROM master_activate_node('localhost', :worker_1_port); NOTICE: Replicating postgres objects to node localhost:57637 -DETAIL: There are 115 objects to replicate, depending on your environment this might take a while +DETAIL: There are 118 objects to replicate, depending on your environment this might take a while ?column? --------------------------------------------------------------------- 1 diff --git a/src/test/regress/sql/drop_partitioned_table.sql b/src/test/regress/sql/drop_partitioned_table.sql index a9842b10a..b1c64d5cb 100644 --- a/src/test/regress/sql/drop_partitioned_table.sql +++ b/src/test/regress/sql/drop_partitioned_table.sql @@ -52,22 +52,6 @@ WHERE n.nspname IN ('drop_partitioned_table', 'schema1') AND c.relkind IN ('r','p') ORDER BY 1, 2; -\c - - - :worker_1_port -SET search_path = drop_partitioned_table; -CREATE VIEW tables_info AS -SELECT n.nspname as "Schema", - c.relname as "Name", - CASE c.relkind WHEN 'r' THEN 'table' WHEN 'p' THEN 'partitioned table' END as "Type", - pg_catalog.pg_get_userbyid(c.relowner) as "Owner" -FROM pg_catalog.pg_class c - LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace - LEFT JOIN pg_user u ON u.usesysid = c.relowner -WHERE n.nspname IN ('drop_partitioned_table', 'schema1') - AND c.relkind IN ('r','p') -ORDER BY 1, 2; - -\c - - - :master_port -SET search_path = drop_partitioned_table; SET citus.next_shard_id TO 721000; -- CASE 1 diff --git a/src/test/regress/sql/function_propagation.sql b/src/test/regress/sql/function_propagation.sql index d4d3a7322..579a1aa9f 100644 --- a/src/test/regress/sql/function_propagation.sql +++ b/src/test/regress/sql/function_propagation.sql @@ -101,7 +101,7 @@ $$; SELECT pg_identify_object_as_address(classid, objid, objsubid) from pg_catalog.pg_dist_object where objid = 'function_propagation_schema.func_6'::regproc::oid; SELECT * FROM run_command_on_workers($$SELECT pg_identify_object_as_address(classid, objid, objsubid) from pg_catalog.pg_dist_object where objid = 'function_propagation_schema.func_6'::regproc::oid;$$) ORDER BY 1,2; --- Views are not supported +-- Views are supported CREATE VIEW function_prop_view AS SELECT * FROM function_prop_table; CREATE OR REPLACE FUNCTION func_7(param_1 function_prop_view) RETURNS int diff --git a/src/test/regress/sql/multi_generate_ddl_commands.sql b/src/test/regress/sql/multi_generate_ddl_commands.sql index 4237d62b0..b4d04931a 100644 --- a/src/test/regress/sql/multi_generate_ddl_commands.sql +++ b/src/test/regress/sql/multi_generate_ddl_commands.sql @@ -116,7 +116,7 @@ ALTER TABLE fiddly_table SELECT master_get_table_ddl_events('fiddly_table'); --- propagating views is not supported +-- propagating views is not supported if local table dependency exists CREATE VIEW local_view AS SELECT * FROM simple_table; SELECT master_get_table_ddl_events('local_view');