Put check_mx on multi_schedule's different points

velioglu/metadata_consistency
Burak Velioglu 2022-03-14 11:01:08 +03:00
parent 53e89e8d1f
commit a94944cd8f
No known key found for this signature in database
GPG Key ID: F6827E620F6549C6
3 changed files with 66 additions and 1 deletions

View File

@ -59,6 +59,7 @@ test: pg13 pg12
test: pg14
test: tableam drop_column_partitioned_table
# ----------
# Miscellaneous tests to check our query planning behavior
# ----------
@ -74,20 +75,31 @@ test: join_pushdown
test: multi_subquery_union multi_subquery_in_where_clause multi_subquery_misc statement_cancel_error_message
test: multi_agg_distinct multi_limit_clause_approximate multi_outer_join_reference multi_single_relation_subquery multi_prepare_plsql set_role_in_transaction
test: multi_reference_table multi_select_for_update relation_access_tracking pg13_with_ties
test: custom_aggregate_support aggregate_support tdigest_aggregate_support
test: check_mx
test: custom_aggregate_support
test: check_mx
test: aggregate_support
test: check_mx
test: tdigest_aggregate_support
test: check_mx
test: multi_average_expression multi_working_columns multi_having_pushdown having_subquery
test: check_mx
test: multi_array_agg multi_limit_clause multi_orderby_limit_pushdown
test: check_mx
test: multi_jsonb_agg multi_jsonb_object_agg multi_json_agg multi_json_object_agg bool_agg ch_bench_having chbenchmark_all_queries expression_reference_join anonymous_columns
test: check_mx
test: ch_bench_subquery_repartition
test: multi_agg_type_conversion multi_count_type_conversion recursive_relation_planning_restriction_pushdown
test: multi_partition_pruning single_hash_repartition_join unsupported_lateral_subqueries
test: multi_join_pruning multi_hash_pruning intermediate_result_pruning
test: multi_null_minmax_value_pruning cursors
test: check_mx
test: modification_correctness
test: multi_query_directory_cleanup
test: multi_task_assignment_policy multi_cross_shard
test: multi_utility_statements
test: multi_dropped_column_aliases foreign_key_restriction_enforcement
test: check_mx
test: binary_protocol
test: alter_table_set_access_method
test: alter_distributed_table
@ -95,6 +107,7 @@ test: issue_5248 issue_5099
test: object_propagation_debug
test: undistribute_table
test: run_command_on_all_nodes
test: check_mx
# ---------
@ -108,3 +121,4 @@ test: ensure_no_intermediate_data_leak
# --------
test: ensure_no_shared_connection_leak
test: check_mx

View File

@ -87,6 +87,9 @@ begin return x * 2;
end;
$$;
SELECT pg_identify_object_as_address(classid, objid, objsubid), * from pg_catalog.pg_dist_object;
SELECT unnest(result::text[]) FROM run_command_on_workers($$select array_agg(pg_identify_object_as_address(classid, objid, objsubid)) from pg_catalog.pg_dist_object$$) order by 1;
create aggregate psum(int, int)(
sfunc=psum_sfunc,
combinefunc=psum_combinefunc,
@ -155,6 +158,9 @@ begin if coalesce(s1,'') > coalesce(s2,'') then return s1; else return s2; end i
end;
$$;
SELECT pg_identify_object_as_address(classid, objid, objsubid), * from pg_catalog.pg_dist_object;
SELECT unnest(result::text[]) FROM run_command_on_workers($$select array_agg(pg_identify_object_as_address(classid, objid, objsubid)) from pg_catalog.pg_dist_object$$) order by 1;
create aggregate binstragg(text, text)(
sfunc=binstragg_sfunc,
combinefunc=binstragg_combinefunc,
@ -247,6 +253,9 @@ select regr_syy(u1.user_id, u2.user_id) filter (where '0300030' LIKE '%3%')::int
from users_table u1, events_table u2
where u1.user_id = u2.user_id;
SELECT pg_identify_object_as_address(classid, objid, objsubid), * from pg_catalog.pg_dist_object;
SELECT unnest(result::text[]) FROM run_command_on_workers($$select array_agg(pg_identify_object_as_address(classid, objid, objsubid)) from pg_catalog.pg_dist_object$$) order by 1;
-- multiple aggs with filters
select regr_syy(u1.user_id, u2.user_id) filter (where u1.value_1 < 5)::numeric(10,3), regr_syy(u1.value_1, u2.value_2) filter (where u1.user_id < 5)::numeric(10,3)
from users_table u1, events_table u2
@ -464,6 +473,9 @@ RETURN $1 * $1;
END;
$function$;
SELECT pg_identify_object_as_address(classid, objid, objsubid), * from pg_catalog.pg_dist_object;
SELECT unnest(result::text[]) FROM run_command_on_workers($$select array_agg(pg_identify_object_as_address(classid, objid, objsubid)) from pg_catalog.pg_dist_object$$) order by 1;
SET citus.enable_metadata_sync TO OFF;
CREATE OR REPLACE FUNCTION square_func(int)
RETURNS int
@ -475,6 +487,9 @@ END;
$function$;
RESET citus.enable_metadata_sync;
SELECT pg_identify_object_as_address(classid, objid, objsubid), * from pg_catalog.pg_dist_object;
SELECT unnest(result::text[]) FROM run_command_on_workers($$select array_agg(pg_identify_object_as_address(classid, objid, objsubid)) from pg_catalog.pg_dist_object$$) order by 1;
SELECT const_function(1), string_agg(a::character, ',') FROM t1;
SELECT const_function(1), count(b) FROM t1;
SELECT const_function(1), count(b), 10 FROM t1;
@ -523,6 +538,9 @@ SELECT PERCENTILE_DISC(.25) WITHIN GROUP (ORDER BY agg_col)
FROM dist_table
LEFT JOIN ref_table ON TRUE;
SELECT pg_identify_object_as_address(classid, objid, objsubid), * from pg_catalog.pg_dist_object;
SELECT unnest(result::text[]) FROM run_command_on_workers($$select array_agg(pg_identify_object_as_address(classid, objid, objsubid)) from pg_catalog.pg_dist_object$$) order by 1;
SELECT PERCENTILE_DISC(.25) WITHIN GROUP (ORDER BY agg_col)
FROM (SELECT *, random() FROM dist_table) a;
@ -553,6 +571,9 @@ SELECT create_distributed_table('dummy_tbl','a');
create function dummy_fnc(a dummy_tbl, d double precision) RETURNS dummy_tbl
AS $$SELECT 1;$$ LANGUAGE sql;
SELECT pg_identify_object_as_address(classid, objid, objsubid), * from pg_catalog.pg_dist_object;
SELECT unnest(result::text[]) FROM run_command_on_workers($$select array_agg(pg_identify_object_as_address(classid, objid, objsubid)) from pg_catalog.pg_dist_object$$) order by 1;
-- test in tx block
-- shouldn't distribute, as citus.create_object_propagation is set to deferred
BEGIN;
@ -562,8 +583,14 @@ COMMIT;
-- verify not distributed
SELECT run_command_on_workers($$select aggfnoid from pg_aggregate where aggfnoid::text like '%dependent_agg%';$$);
SELECT pg_identify_object_as_address(classid, objid, objsubid), * from pg_catalog.pg_dist_object;
SELECT unnest(result::text[]) FROM run_command_on_workers($$select array_agg(pg_identify_object_as_address(classid, objid, objsubid)) from pg_catalog.pg_dist_object$$) order by 1;
drop aggregate dependent_agg ( double precision);
SELECT pg_identify_object_as_address(classid, objid, objsubid), * from pg_catalog.pg_dist_object;
SELECT unnest(result::text[]) FROM run_command_on_workers($$select array_agg(pg_identify_object_as_address(classid, objid, objsubid)) from pg_catalog.pg_dist_object$$) order by 1;
-- now try with create_object_propagation = immediate
SET citus.create_object_propagation TO immediate;
-- should distribute, as citus.create_object_propagation is set to immediate
@ -572,9 +599,15 @@ BEGIN;
create aggregate dependent_agg (float8) (stype=dummy_tbl, sfunc=dummy_fnc);
COMMIT;
SELECT pg_identify_object_as_address(classid, objid, objsubid), * from pg_catalog.pg_dist_object;
SELECT unnest(result::text[]) FROM run_command_on_workers($$select array_agg(pg_identify_object_as_address(classid, objid, objsubid)) from pg_catalog.pg_dist_object$$) order by 1;
-- verify distributed
SELECT run_command_on_workers($$select aggfnoid from pg_aggregate where aggfnoid::text like '%dependent_agg%';$$);
SELECT pg_identify_object_as_address(classid, objid, objsubid), * from pg_catalog.pg_dist_object;
SELECT unnest(result::text[]) FROM run_command_on_workers($$select array_agg(pg_identify_object_as_address(classid, objid, objsubid)) from pg_catalog.pg_dist_object$$) order by 1;
drop aggregate dependent_agg ( double precision);
-- now try with create_object_propagation = automatic
@ -585,6 +618,9 @@ BEGIN;
create aggregate dependent_agg (float8) (stype=dummy_tbl, sfunc=dummy_fnc);
COMMIT;
SELECT pg_identify_object_as_address(classid, objid, objsubid), * from pg_catalog.pg_dist_object;
SELECT unnest(result::text[]) FROM run_command_on_workers($$select array_agg(pg_identify_object_as_address(classid, objid, objsubid)) from pg_catalog.pg_dist_object$$) order by 1;
-- verify distributed
SELECT run_command_on_workers($$select aggfnoid from pg_aggregate where aggfnoid::text like '%dependent_agg%';$$);
@ -593,6 +629,9 @@ SELECT run_command_on_workers($$SELECT count(*) from pg_catalog.pg_dist_object w
RESET citus.create_object_propagation;
SELECT pg_identify_object_as_address(classid, objid, objsubid), * from pg_catalog.pg_dist_object;
SELECT unnest(result::text[]) FROM run_command_on_workers($$select array_agg(pg_identify_object_as_address(classid, objid, objsubid)) from pg_catalog.pg_dist_object$$) order by 1;
-- drop and test outside of tx block
drop aggregate dependent_agg (float8);
-- verify that the aggregate is removed from pg_dist_object, on each worker
@ -601,8 +640,14 @@ create aggregate dependent_agg (float8) (stype=dummy_tbl, sfunc=dummy_fnc);
--verify
SELECT run_command_on_workers($$select aggfnoid from pg_aggregate where aggfnoid::text like '%dependent_agg%';$$);
SELECT pg_identify_object_as_address(classid, objid, objsubid), * from pg_catalog.pg_dist_object;
SELECT unnest(result::text[]) FROM run_command_on_workers($$select array_agg(pg_identify_object_as_address(classid, objid, objsubid)) from pg_catalog.pg_dist_object$$) order by 1;
DROP TABLE dummy_tbl CASCADE;
SELECT pg_identify_object_as_address(classid, objid, objsubid), * from pg_catalog.pg_dist_object;
SELECT unnest(result::text[]) FROM run_command_on_workers($$select array_agg(pg_identify_object_as_address(classid, objid, objsubid)) from pg_catalog.pg_dist_object$$) order by 1;
SET citus.create_object_propagation TO automatic;
begin;
create type typ1 as (a int);
@ -611,6 +656,9 @@ begin;
commit;
RESET citus.create_object_propagation;
SELECT pg_identify_object_as_address(classid, objid, objsubid), * from pg_catalog.pg_dist_object;
SELECT unnest(result::text[]) FROM run_command_on_workers($$select array_agg(pg_identify_object_as_address(classid, objid, objsubid)) from pg_catalog.pg_dist_object$$) order by 1;
SELECT run_command_on_workers($$select aggfnoid from pg_aggregate where aggfnoid::text like '%dependent_agg%';$$);
set client_min_messages to error;

View File

@ -23,3 +23,6 @@ SELECT unnest(result::text[]) AS unnested_result
FROM run_command_on_workers($$SELECT activate_node_snapshot()$$)
EXCEPT
SELECT unnest(activate_node_snapshot());
SELECT pg_identify_object_as_address(classid, objid, objsubid), * from pg_catalog.pg_dist_object;
SELECT unnest(result::text[]) FROM run_command_on_workers($$select array_agg(pg_identify_object_as_address(classid, objid, objsubid)) from pg_catalog.pg_dist_object$$) order by 1;