mirror of https://github.com/citusdata/citus.git
Put check_mx on multi_schedule's different points
parent
53e89e8d1f
commit
a94944cd8f
|
@ -59,6 +59,7 @@ test: pg13 pg12
|
||||||
test: pg14
|
test: pg14
|
||||||
test: tableam drop_column_partitioned_table
|
test: tableam drop_column_partitioned_table
|
||||||
|
|
||||||
|
|
||||||
# ----------
|
# ----------
|
||||||
# Miscellaneous tests to check our query planning behavior
|
# 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_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_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: 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: 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: 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: 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: ch_bench_subquery_repartition
|
||||||
test: multi_agg_type_conversion multi_count_type_conversion recursive_relation_planning_restriction_pushdown
|
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_partition_pruning single_hash_repartition_join unsupported_lateral_subqueries
|
||||||
test: multi_join_pruning multi_hash_pruning intermediate_result_pruning
|
test: multi_join_pruning multi_hash_pruning intermediate_result_pruning
|
||||||
test: multi_null_minmax_value_pruning cursors
|
test: multi_null_minmax_value_pruning cursors
|
||||||
|
test: check_mx
|
||||||
test: modification_correctness
|
test: modification_correctness
|
||||||
test: multi_query_directory_cleanup
|
test: multi_query_directory_cleanup
|
||||||
test: multi_task_assignment_policy multi_cross_shard
|
test: multi_task_assignment_policy multi_cross_shard
|
||||||
test: multi_utility_statements
|
test: multi_utility_statements
|
||||||
test: multi_dropped_column_aliases foreign_key_restriction_enforcement
|
test: multi_dropped_column_aliases foreign_key_restriction_enforcement
|
||||||
|
test: check_mx
|
||||||
test: binary_protocol
|
test: binary_protocol
|
||||||
test: alter_table_set_access_method
|
test: alter_table_set_access_method
|
||||||
test: alter_distributed_table
|
test: alter_distributed_table
|
||||||
|
@ -95,6 +107,7 @@ test: issue_5248 issue_5099
|
||||||
test: object_propagation_debug
|
test: object_propagation_debug
|
||||||
test: undistribute_table
|
test: undistribute_table
|
||||||
test: run_command_on_all_nodes
|
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: ensure_no_shared_connection_leak
|
||||||
test: check_mx
|
test: check_mx
|
||||||
|
|
||||||
|
|
|
@ -87,6 +87,9 @@ begin return x * 2;
|
||||||
end;
|
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)(
|
create aggregate psum(int, int)(
|
||||||
sfunc=psum_sfunc,
|
sfunc=psum_sfunc,
|
||||||
combinefunc=psum_combinefunc,
|
combinefunc=psum_combinefunc,
|
||||||
|
@ -155,6 +158,9 @@ begin if coalesce(s1,'') > coalesce(s2,'') then return s1; else return s2; end i
|
||||||
end;
|
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)(
|
create aggregate binstragg(text, text)(
|
||||||
sfunc=binstragg_sfunc,
|
sfunc=binstragg_sfunc,
|
||||||
combinefunc=binstragg_combinefunc,
|
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
|
from users_table u1, events_table u2
|
||||||
where u1.user_id = u2.user_id;
|
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
|
-- 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)
|
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
|
from users_table u1, events_table u2
|
||||||
|
@ -464,6 +473,9 @@ RETURN $1 * $1;
|
||||||
END;
|
END;
|
||||||
$function$;
|
$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;
|
SET citus.enable_metadata_sync TO OFF;
|
||||||
CREATE OR REPLACE FUNCTION square_func(int)
|
CREATE OR REPLACE FUNCTION square_func(int)
|
||||||
RETURNS int
|
RETURNS int
|
||||||
|
@ -475,6 +487,9 @@ END;
|
||||||
$function$;
|
$function$;
|
||||||
RESET citus.enable_metadata_sync;
|
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), string_agg(a::character, ',') FROM t1;
|
||||||
SELECT const_function(1), count(b) FROM t1;
|
SELECT const_function(1), count(b) FROM t1;
|
||||||
SELECT const_function(1), count(b), 10 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
|
FROM dist_table
|
||||||
LEFT JOIN ref_table ON TRUE;
|
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)
|
SELECT PERCENTILE_DISC(.25) WITHIN GROUP (ORDER BY agg_col)
|
||||||
FROM (SELECT *, random() FROM dist_table) a;
|
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
|
create function dummy_fnc(a dummy_tbl, d double precision) RETURNS dummy_tbl
|
||||||
AS $$SELECT 1;$$ LANGUAGE sql;
|
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
|
-- test in tx block
|
||||||
-- shouldn't distribute, as citus.create_object_propagation is set to deferred
|
-- shouldn't distribute, as citus.create_object_propagation is set to deferred
|
||||||
BEGIN;
|
BEGIN;
|
||||||
|
@ -562,8 +583,14 @@ COMMIT;
|
||||||
-- verify not distributed
|
-- verify not distributed
|
||||||
SELECT run_command_on_workers($$select aggfnoid from pg_aggregate where aggfnoid::text like '%dependent_agg%';$$);
|
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);
|
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
|
-- now try with create_object_propagation = immediate
|
||||||
SET citus.create_object_propagation TO immediate;
|
SET citus.create_object_propagation TO immediate;
|
||||||
-- should distribute, as citus.create_object_propagation is set 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);
|
create aggregate dependent_agg (float8) (stype=dummy_tbl, sfunc=dummy_fnc);
|
||||||
COMMIT;
|
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
|
-- verify distributed
|
||||||
SELECT run_command_on_workers($$select aggfnoid from pg_aggregate where aggfnoid::text like '%dependent_agg%';$$);
|
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);
|
drop aggregate dependent_agg ( double precision);
|
||||||
|
|
||||||
-- now try with create_object_propagation = automatic
|
-- now try with create_object_propagation = automatic
|
||||||
|
@ -585,6 +618,9 @@ BEGIN;
|
||||||
create aggregate dependent_agg (float8) (stype=dummy_tbl, sfunc=dummy_fnc);
|
create aggregate dependent_agg (float8) (stype=dummy_tbl, sfunc=dummy_fnc);
|
||||||
COMMIT;
|
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
|
-- verify distributed
|
||||||
SELECT run_command_on_workers($$select aggfnoid from pg_aggregate where aggfnoid::text like '%dependent_agg%';$$);
|
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;
|
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 and test outside of tx block
|
||||||
drop aggregate dependent_agg (float8);
|
drop aggregate dependent_agg (float8);
|
||||||
-- verify that the aggregate is removed from pg_dist_object, on each worker
|
-- 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
|
--verify
|
||||||
SELECT run_command_on_workers($$select aggfnoid from pg_aggregate where aggfnoid::text like '%dependent_agg%';$$);
|
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;
|
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;
|
SET citus.create_object_propagation TO automatic;
|
||||||
begin;
|
begin;
|
||||||
create type typ1 as (a int);
|
create type typ1 as (a int);
|
||||||
|
@ -611,6 +656,9 @@ begin;
|
||||||
commit;
|
commit;
|
||||||
RESET citus.create_object_propagation;
|
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%';$$);
|
SELECT run_command_on_workers($$select aggfnoid from pg_aggregate where aggfnoid::text like '%dependent_agg%';$$);
|
||||||
|
|
||||||
set client_min_messages to error;
|
set client_min_messages to error;
|
||||||
|
|
|
@ -23,3 +23,6 @@ SELECT unnest(result::text[]) AS unnested_result
|
||||||
FROM run_command_on_workers($$SELECT activate_node_snapshot()$$)
|
FROM run_command_on_workers($$SELECT activate_node_snapshot()$$)
|
||||||
EXCEPT
|
EXCEPT
|
||||||
SELECT unnest(activate_node_snapshot());
|
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;
|
Loading…
Reference in New Issue