# ---------- # $Id$ # # Regression tests that exercise distributed planning/execution functionality. # # All new regression tests are expected to be run by this schedule. Tests that # do not set specific task executor type should also be added to # multi_task_tracker_extra_schedule. # # Note that we use variant comparison files to test version dependent regression # test results. For more information: # http://www.postgresql.org/docs/current/static/regress-variant.html # ---------- # --- # Tests around schema changes, these are run first, so there's no preexisting objects. # # propagate_extension_commands lies just after multi_cluster_management as we do # remove / add node operations, we do not want any preexisting objects before # propagate_extension_commands # --- test: multi_test_helpers test: multi_test_catalog_views test: multi_name_resolution # ---------- # The following distributed tests depend on creating a partitioned table and # uploading data to it. # ---------- test: multi_create_table test: multi_master_protocol multi_load_data multi_behavioral_analytics_create_table test: recursive_dml_with_different_planners_executors test: window_functions multi_insert_select_window # 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 regaring recursively planned modifications # ensure that we don't leak any intermediate results # This test should not run in parallel with any other tests # --------- # ---------- # Tests for partitioning support # ---------- # ---------- # Tests for recursive subquery planning # ---------- test: subquery_basics subquery_local_tables subquery_executors set_operations set_operation_and_local_tables test: subquery_partitioning subquery_complex_target_list subqueries_not_supported test: non_colocated_join_order test: subquery_prepared_statements pg12 cte_inline # ---------- # Miscellaneous tests to check our query planning behavior # ---------- test: multi_distributed_transaction_id test: hyperscale_tutorial test: multi_basic_queries multi_complex_expressions multi_subquery_complex_queries multi_subquery_behavioral_analytics test: multi_subquery_complex_reference_clause multi_subquery_window_functions multi_sql_function test: multi_function_in_join row_types test: multi_subquery_in_where_reference_clause join adaptive_executor propagate_set_commands test: rollback_to_savepoint insert_select_into_local_table undistribute_table test: multi_subquery_union multi_subquery_in_where_clause multi_subquery_misc test: multi_limit_clause_approximate multi_single_relation_subquery set_role_in_transaction test: multi_select_for_update pg13_with_ties test: multi_average_expression multi_working_columns multi_having_pushdown test: multi_array_agg test: multi_jsonb_agg multi_jsonb_object_agg multi_json_agg multi_json_object_agg bool_agg ch_bench_having ch_bench_subquery_repartition chbenchmark_all_queries expression_reference_join test: multi_agg_type_conversion multi_count_type_conversion test: multi_cross_shard test: multi_dropped_column_aliases foreign_key_restriction_enforcement # ---------- # Parallel TPC-H tests to check our distributed execution behavior # ---------- test: multi_tpch_query1 multi_tpch_query3 multi_tpch_query6 multi_tpch_query10 test: multi_tpch_query12 multi_tpch_query14 multi_tpch_query19 test: multi_tpch_query7 multi_tpch_query7_nested # ---------- # Parallel tests to check our join order planning logic. Note that we load data # below; and therefore these tests should come after the execution tests. # ---------- test: multi_join_order_tpch_small multi_join_order_additional test: multi_join_order_tpch_repartition # ---------- # Tests for repartition join planning and execution. Be careful when creating # new shards before these tests, as they expect specific shard identifiers in # the output. # ---------- test: multi_repartition_join_ref test: adaptive_executor_repartition # --------- # Tests that modify data should run sequentially # --------- test: with_prepare # --------- # Tests for recursive planning. # --------- test: with_nested with_where test: cte_prepared_modify cte_nested_modification test: with_executors with_partitioning with_dml # ---------- # Tests to check our large record loading and shard deletion behavior # ---------- test: multi_load_large_records test: multi_master_delete_protocol test: multi_shard_modify # ---------- # Tests around DDL statements run on distributed tables # ---------- # ---------- # multi_create_schema tests creation, loading, and querying of a table in a new # schema (namespace). # ---------- test: multi_create_schema # ---------- # Tests to check if we inform the user about potential caveats of creating new # databases, schemas, roles, and authentication information. # ---------- # ---------- # Tests to check the sequential and parallel executions of DDL and modification # commands # Should not be executed in parallel with other tests # ---------- # --------- # loads data to create shards in a way that forces # shard caching. # --------- # --------- # multi_outer_join loads data to create shards to test outer join mappings # --------- test: multi_outer_join # --- # Tests covering mostly modification queries and required preliminary # functionality related to metadata, shard creation, shard pruning and # "hacky" copy script for hash partitioned tables. # Note that the order of the following tests are important. multi_complex_count_distinct # is independent from the rest of the group, it is added to increase parallelism. # --- test: multi_complex_count_distinct test: multi_upsert multi_simple_queries test: foreign_key_to_reference_table validate_constraint # --------- # creates hash and range-partitioned tables and performs COPY # creates hash partitioned tables. # --------- test: fast_path_router_modify test: null_parameters # ---------- # loads more lineitem data using high shard identifiers # ---------- # ---------- # tests various size commands on distributed tables # ---------- # ---------- # multi_drop_extension makes sure we can safely drop and recreate the extension # ---------- # ---------- # tests the propagation of mx-related metadata changes to metadata workers # multi_unsupported_worker_operations tests that unsupported operations error out on metadata workers # ---------- # ---------- # tests if the GRANT ... ON SCHEMA queries are propagated correctly # makes sure we can work with tables in schemas other than public with no problem # ---------- # ---------- # multi_function_evaluation tests edge-cases in master-side function pre-evaluation # ---------- test: multi_function_evaluation # ---------- # tests truncate functionality for distributed tables # ---------- # ---------- # tests utility functions written for co-location feature & internal API # tests master_copy_shard_placement with colocated tables. # ---------- # ---------- # tests utility functions written for citus tools # ---------- # ---------- # multi_foreign_key tests foreign key push down on distributed tables # ---------- test: multi_foreign_key # ---------- # tests for upgrade_reference_table UDF # tests replicating reference tables to new nodes after we add new nodes # tests metadata changes after master_remove_node # ---------- # -------- # Replicating reference tables to coordinator. Add coordinator to pg_dist_node # and rerun some of the tests. # -------- test: foreign_key_to_reference_table # ---------- # tests for dropping shards using connection API # ---------- # ---------- # tests simple combinations of permission access and queries # ---------- # --------- # tests for an obscure crash citus used to exhibit when shardids # changed the table they belonged to during a session # -------- # --------- # multi_task_string_size tests task string size checks # --------- test: multi_task_string_size # --------- # connection encryption tests # --------- # --------- # object distribution tests # --------- test: distributed_types_xact_add_enum_value # --------- # deparsing logic tests # --------- # --------- # test that no tests leaked intermediate results. This should always be last # Causes random test failures so commented out for now # --------- # test: