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: 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
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
Loading…
Reference in New Issue