From fc89487e9306af54405eb7ab6b6d152cb91fb727 Mon Sep 17 00:00:00 2001 From: Sait Talha Nisanci Date: Mon, 7 Jun 2021 11:24:31 +0300 Subject: [PATCH] Split check multi --- .circleci/config.yml | 12 ++++ src/test/regress/Makefile | 4 ++ src/test/regress/multi_schedule | 51 ---------------- src/test/regress/multi_schedule_1 | 96 +++++++++++++++++++++++++++++++ 4 files changed, 112 insertions(+), 51 deletions(-) create mode 100644 src/test/regress/multi_schedule_1 diff --git a/.circleci/config.yml b/.circleci/config.yml index a286b7ba7..55eaa51c4 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -451,6 +451,12 @@ workflows: image_tag: '12.6' make: check-multi requires: [build-12] + - test-citus: + name: 'test-12_check-multi-1' + pg_major: 12 + image_tag: '12.6' + make: check-multi-1 + requires: [build-12] - test-citus: name: 'test-12_check-mx' pg_major: 12 @@ -519,6 +525,12 @@ workflows: image_tag: '13.2' make: check-multi requires: [build-13] + - test-citus: + name: 'test-13_check-multi-1' + pg_major: 13 + image_tag: '13.2' + make: check-multi-1 + requires: [build-13] - test-citus: name: 'test-13_check-mx' pg_major: 13 diff --git a/src/test/regress/Makefile b/src/test/regress/Makefile index 12010e858..ed1f8f0e9 100644 --- a/src/test/regress/Makefile +++ b/src/test/regress/Makefile @@ -132,6 +132,10 @@ check-multi: all $(pg_regress_multi_check) --load-extension=citus \ -- $(MULTI_REGRESS_OPTS) --schedule=$(citus_abs_srcdir)/multi_schedule $(EXTRA_TESTS) +check-multi-1: all + $(pg_regress_multi_check) --load-extension=citus \ + -- $(MULTI_REGRESS_OPTS) --schedule=$(citus_abs_srcdir)/multi_schedule_1 $(EXTRA_TESTS) + check-multi-hyperscale: all $(pg_regress_multi_check) --conninfo="$(conninfo)" --load-extension=citus \ -- $(MULTI_REGRESS_OPTS) --schedule=$(citus_abs_srcdir)/multi_schedule_hyperscale $(EXTRA_TESTS) diff --git a/src/test/regress/multi_schedule b/src/test/regress/multi_schedule index 6d926b161..eabb3c811 100644 --- a/src/test/regress/multi_schedule +++ b/src/test/regress/multi_schedule @@ -72,27 +72,7 @@ test: multi_partitioning_utils multi_partitioning partitioning_issue_3970 replic # ---------- test: multi_create_fdw -# ---------- -# Tests for recursive subquery planning -# ---------- -# NOTE: The next 7 were in parallel originally, but we got "too many -# connection" errors on CI. Requires investigation before doing them in -# parallel again. -test: subquery_basics -test: subquery_local_tables -test: subquery_executors -test: subquery_and_cte -test: set_operations -test: union_pushdown -test: set_operation_and_local_tables -test: subqueries_deep subquery_view subquery_partitioning subqueries_not_supported -test: subquery_in_targetlist subquery_in_where subquery_complex_target_list -test: subquery_prepared_statements -test: non_colocated_leaf_subquery_joins non_colocated_subquery_joins non_colocated_join_order -test: cte_inline recursive_view_local_table values -test: pg13 pg12 -test: tableam # ---------- # Tests for statistics propagation @@ -105,37 +85,6 @@ test: pg13_propagate_statistics # ---------- test: citus_update_table_statistics -# ---------- -# Miscellaneous tests to check our query planning behavior -# ---------- -test: multi_deparse_shard_query multi_distributed_transaction_id intermediate_results limit_intermediate_size rollback_to_savepoint -test: multi_explain hyperscale_tutorial partitioned_intermediate_results distributed_intermediate_results multi_real_time_transaction -test: multi_basic_queries cross_join multi_complex_expressions multi_subquery multi_subquery_complex_queries multi_subquery_behavioral_analytics -test: multi_subquery_complex_reference_clause multi_subquery_window_functions multi_view multi_sql_function multi_prepare_sql -test: sql_procedure multi_function_in_join row_types materialized_view undistribute_table -test: multi_subquery_in_where_reference_clause adaptive_executor propagate_set_commands geqo -# this should be run alone as it gets too many clients -test: join_pushdown -test: multi_subquery_union multi_subquery_in_where_clause multi_subquery_misc statement_cancel_error_message -test: multi_agg_distinct multi_agg_approximate_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: multi_average_expression multi_working_columns multi_having_pushdown having_subquery -test: multi_array_agg multi_limit_clause multi_orderby_limit_pushdown -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: 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 -test: multi_join_pruning multi_hash_pruning intermediate_result_pruning -test: multi_null_minmax_value_pruning cursors -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: binary_protocol -test: alter_table_set_access_method -test: alter_distributed_table - # ---------- # Parallel TPC-H tests to check our distributed execution behavior # ---------- diff --git a/src/test/regress/multi_schedule_1 b/src/test/regress/multi_schedule_1 new file mode 100644 index 000000000..19907bce7 --- /dev/null +++ b/src/test/regress/multi_schedule_1 @@ -0,0 +1,96 @@ +test: multi_cluster_management +test: multi_test_helpers multi_test_helpers_superuser multi_create_fdw +test: multi_test_catalog_views + +# ---------- +# The following distributed tests depend on creating a partitioned table and +# uploading data to it. +# ---------- +test: multi_create_table +test: multi_create_table_superuser +test: multi_create_table_constraints multi_master_protocol multi_load_data multi_load_data_superuser multi_behavioral_analytics_create_table +test: multi_behavioral_analytics_basics multi_behavioral_analytics_single_shard_queries multi_insert_select_non_pushable_queries multi_insert_select multi_behavioral_analytics_create_table_superuser +test: multi_shard_update_delete recursive_dml_with_different_planners_executors +test: insert_select_repartition window_functions dml_recursive multi_insert_select_window +test: multi_insert_select_conflict citus_table_triggers +test: multi_row_insert insert_select_into_local_table multi_create_table_new_features + +# following should not run in parallel because it relies on connection counts to workers +test: insert_select_connection_leak + +# --------- +# at the end of the regression tests regarding recursively planned modifications +# ensure that we don't leak any intermediate results +# This test should not run in parallel with any other tests +# --------- +test: ensure_no_intermediate_data_leak + +# ---------- +# Tests for partitioning support +# ---------- +test: multi_partitioning_utils multi_partitioning replicated_partitioned_table + + +# ---------- +# Tests for recursive subquery planning +# ---------- +# NOTE: The next 7 were in parallel originally, but we got "too many +# connection" errors on CI. Requires investigation before doing them in +# parallel again. +test: subquery_basics +test: subquery_local_tables +test: subquery_executors +test: subquery_and_cte +test: set_operations +test: union_pushdown +test: set_operation_and_local_tables + +test: subqueries_deep subquery_view subquery_partitioning subqueries_not_supported +test: subquery_in_targetlist subquery_in_where subquery_complex_target_list +test: subquery_prepared_statements +test: non_colocated_leaf_subquery_joins non_colocated_subquery_joins non_colocated_join_order +test: cte_inline recursive_view_local_table values +test: pg13 pg12 +test: tableam + +# ---------- +# Miscellaneous tests to check our query planning behavior +# ---------- +test: multi_deparse_shard_query multi_distributed_transaction_id intermediate_results limit_intermediate_size rollback_to_savepoint +test: multi_explain hyperscale_tutorial partitioned_intermediate_results distributed_intermediate_results multi_real_time_transaction +test: multi_basic_queries cross_join multi_complex_expressions multi_subquery multi_subquery_complex_queries multi_subquery_behavioral_analytics +test: multi_subquery_complex_reference_clause multi_subquery_window_functions multi_view multi_sql_function multi_prepare_sql +test: sql_procedure multi_function_in_join row_types materialized_view undistribute_table +test: multi_subquery_in_where_reference_clause adaptive_executor propagate_set_commands geqo +# this should be run alone as it gets too many clients +test: join_pushdown +test: multi_subquery_union multi_subquery_in_where_clause multi_subquery_misc statement_cancel_error_message +test: multi_agg_distinct multi_agg_approximate_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: multi_average_expression multi_working_columns multi_having_pushdown having_subquery +test: multi_array_agg multi_limit_clause multi_orderby_limit_pushdown +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: 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 +test: multi_join_pruning multi_hash_pruning intermediate_result_pruning +test: multi_null_minmax_value_pruning cursors +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: binary_protocol +test: alter_table_set_access_method +test: alter_distributed_table + +# --------- +# test that no tests leaked intermediate results. This should always be last +# --------- +test: ensure_no_intermediate_data_leak + +# --------- +# ensures that we never leak any connection counts +# in the shared memory +# -------- +test: ensure_no_shared_connection_leak \ No newline at end of file