# Greenplum-specific tests # # The order of the tests is fairly random, but there are a couple of things # to consider when placing a new test: # # * Keep long-running tests in the same group with other tests with a similar # runtime. That way, on a multi-processor system, the tests will finish # roughly at the same time, which maximizes parallelism. # * Keep tests together with other tests for similar functionality. # * There are some dependencies between tests, and some tests cannot run # in parallel with other tests. # * The maximum size of a group is about 20, like in the Postgres # parallel_schedule. However, some queries can dispatch a lot of workers # to the segments, and therefore has to run in smaller groups to avoid # hitting max_connections limit on segments. # test: gp_metadata variadic_parameters default_parameters function_extensions spi gp_xml pgoptions shared_scan test: leastsquares opr_sanity_gp decode_expr bitmapscan bitmapscan_ao case_gp limit_gp notin percentile join_gp union_gp gpcopy gp_create_table gp_create_view test: filter gpctas gpdist matrix toast sublink table_functions olap_setup complex opclass_ddl information_schema guc_env_var guc_gp gp_explain test: bitmap_index gp_dump_query_oids analyze gp_owner_permission test: indexjoin as_alias regex_gp gpparams with_clause transient_types gp_rules # dispatch should always run seperately from other cases. test: dispatch # deadlock tests run separately - because we don't know which one gets stuck. test: deadlock # test workfiles test: workfile/hashagg_spill workfile/hashjoin_spill workfile/materialize_spill workfile/sisc_mat_sort workfile/sisc_sort_spill workfile/sort_spill workfile/spilltodisk # test workfiles compressed using zlib # 'zlib' utilizes fault injectors so it needs to be in a group by itself test: zlib # This test will change the gp_workfile_limit_per_segment and will need to restart the DB. # It will also use faultinjector - so it needs to be in a group by itself. test: segspace_setup test: segspace test: segspace_cleanup test: cursor # 'query_finish_pending' sets QueryFinishPending flag to true during query execution using fault injectors # so it needs to be in a group by itself test: query_finish_pending test: gpdiffcheck gptokencheck gp_hashagg sequence_gp tidscan co_nestloop_idxscan dml_in_udf test: rangefuncs_cdb gp_dqa subselect_gp subselect_gp2 distributed_transactions olap_group olap_window_seq sirv_functions appendonly alter_distpol_dropped query_finish # 'partition' runs for a long time, so try to keep it together with other # long-running tests. test: partition partition1 partition_indexing parruleord # 'partition_locking' gets confused if other backends run concurrently and # hold locks. test: partition_locking test: vacuum_gp test: sreh # Disabled tests. XXX: Why are these disabled? #test: olap_window #test: tpch500GB # FIXME: These tests no longer work, because they try to set # gp_interconnect_type, which doesn't work: # ERROR: parameter "gp_interconnect_type" cannot be set after connection start ignore: gp_portal_error test: external_table external_table_create_privs column_compression eagerfree gpdtm_plpgsql alter_table_aocs alter_table_aocs2 alter_distribution_policy ic aoco_privileges aocs test: alter_table_gp alter_table_ao ao_create_alter_valid_table subtransaction_visibility oid_consistency udf_exception_blocks ignore: icudp_full test: resource_queue test: resource_queue_function test: wrkloadadmin # gp_toolkit performs a vacuum and checks that it truncated the relation. That # might not happen if other backends are holding transactions open, preventing # vacuum from removing dead tuples. test: gp_toolkit test: gp_toolkit_ao_funcs filespace trig auth_constraint role portals_updatable plpgsql_cache timeseries pg_stat_last_operation gp_numeric_agg partindex_test partition_pruning runtime_stats test: rle rle_delta dsp # direct dispatch tests test: direct_dispatch bfv_dd bfv_dd_multicolumn bfv_dd_types # catalog test uses pg_get_constraintdef which may report ERROR when executed # concurrently with other tests. Cause pg_get_constraintdef() looks up # information on the constraint from the syscache, which uses SnapshotNow to # fetch the information. But the query itself uses an MVCC snapshot. If the # query's MVCC snapshot sees a constraint that is concurrently dropped so that # it's not visible to SnapshotNow, you get error. # # This has been fixed in PostgreSQL 9.4, as part of a larger patch that relaxed # locking requirements of ALTER TABLE # (https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=e5550d5fec66aa74caad1f79b79826ec64898688) test: catalog test: bfv_catalog bfv_index bfv_olap bfv_aggregate bfv_partition DML_over_joins gporca bfv_statistic test: aggregate_with_groupingsets test: nested_case_null sort bb_mpph test: bb_memory_quota memconsumption test: tuple_serialization # NOTE: The bfv_temp test assumes that there are no temporary tables in # other sessions. Therefore the other tests in this group mustn't create # temp tables test: bfv_cte bfv_joins bfv_subquery bfv_planner bfv_legacy bfv_temp test: qp_olap_mdqa qp_misc test: qp_misc_jiras qp_with_clause qp_executor qp_olap_windowerr qp_olap_window qp_derived_table qp_bitmapscan session_level_memory_consumption test: qp_with_functional_inlining qp_with_functional_noinlining test: qp_functions qp_misc_rio_join_small qp_misc_rio qp_correlated_query qp_targeted_dispatch qp_gist_indexes2 qp_gist_indexes3 qp_gist_indexes4 qp_query_execution test: dpe qp_dpe qp_subquery qp_left_anti_semi_join qp_union_intersect qp_functions_idf qp_regexp qp_resource_queue qp_orca_fallback planner_fallback test: qp_functions_in_contexts_setup test: qp_functions_in_from qp_functions_in_select qp_functions_in_subquery qp_functions_in_subquery_constant qp_functions_in_with test: olap_setup test: qp_olap_group qp_olap_group2 test: hooktest ignore: tpch500GB_orca # Tests for "compaction", i.e. VACUUM, of updatable append-only tables test: uao_compaction/full uao_compaction/outdated_partialindex uao_compaction/drop_column_update uao_compaction/eof_truncate uao_compaction/basic uao_compaction/outdatedindex uao_compaction/update_toast uao_compaction/outdatedindex_abort uao_compaction/delete_toast uao_compaction/alter_table_analyze uao_compaction/full_eof_truncate uao_compaction/full_threshold # TODO find why these tests fail in parallel, for now keeping them sequential test: uao_compaction/full_stats test: uao_compaction/stats test: uao_compaction/threshold test: uao_compaction/index_stats test: uao_compaction/index test: uao_compaction/drop_column test: uao_compaction/index2 # Tests for "compaction", i.e. VACUUM, of updatable append-only column oriented tables test: uaocs_compaction/alter_table_analyze uaocs_compaction/basic uaocs_compaction/drop_column_update uaocs_compaction/eof_truncate uaocs_compaction/full uaocs_compaction/full_eof_truncate uaocs_compaction/full_threshold uaocs_compaction/outdated_partialindex uaocs_compaction/outdatedindex uaocs_compaction/outdatedindex_abort # TODO find why these tests fail in parallel, for now keeping them sequential test: uaocs_compaction/full_stats test: uaocs_compaction/stats test: uaocs_compaction/threshold test: uaocs_compaction/index_stats test: uaocs_compaction/index test: uaocs_compaction/drop_column test: uao_ddl/cursor_row uao_ddl/cursor_column uao_ddl/alter_ao_table_statistics_row uao_ddl/analyze_ao_table_every_dml_row uao_ddl/analyze_ao_table_every_dml_column uao_ddl/alter_ao_table_statistics_column uao_ddl/alter_ao_table_setdefault_row uao_ddl/alter_ao_table_index_row uao_ddl/alter_ao_table_owner_column test: uao_ddl/alter_ao_table_owner_row uao_ddl/alter_ao_table_setstorage_row uao_ddl/alter_ao_table_constraint_row uao_ddl/alter_ao_table_constraint_column uao_ddl/alter_ao_table_index_column uao_ddl/blocksize_row uao_ddl/compresstype_column uao_ddl/alter_ao_table_setdefault_column uao_ddl/blocksize_column uao_ddl/temp_on_commit_delete_rows_row uao_ddl/temp_on_commit_delete_rows_column # Do not add the two uao*_catalog_tables tests to a group that runs # serializable transactions. They run VACUUM FULL on append-optimized # tables and assume that no AWAITING_DROP segfiles exist at the end of # VACUUM FULL. test: uao_catalog_tables uaocs_catalog_tables uao_ddl/alter_ao_table_setstorage_column uao_ddl/alter_ao_table_col_ddl_row uao_ddl/compresstype_row uao_ddl/alter_ao_table_col_ddl_column uao_ddl/alter_ao_part_tables_splitpartition_row uao_ddl/alter_ao_part_tables_splitpartition_column uao_ddl/create_ao_tables_row uao_ddl/create_ao_table_500cols_row uao_ddl/create_ao_tables_column uao_ddl/alter_ao_part_exch_row test: uao_ddl/alter_ao_part_exch_column uao_ddl/alter_ao_part_tables_row uao_ddl/create_ao_table_500cols_column uao_ddl/alter_ao_part_tables_column test: uao_ddl/alter_drop_allcol_row uao_ddl/alter_drop_allcol_column uao_ddl/alter_rollback_row uao_ddl/alter_rollback_column uao_ddl/uao_allalter_row uao_ddl/uao_allalter_column uao_col/alter_ao_table_oid_column uao_row/alter_ao_table_oid_row # These tests use gp_select_invisible and VACUUM, and will get confused if there are # concurrent transactions holding back the global xmin. test: uao_dml/uao_dml_row test: uao_dml/uao_dml_column test: uao_dml/uao_dml_cursor_row uao_dml/uao_dml_select_row uao_dml/uao_dml_cursor_column uao_dml/uao_dml_select_column test: ao_locks test: freeze_aux_tables # These cannot run in parallel, because they check that VACUUM FULL shrinks table size. # A concurrent session could hold back the xid horizon and prevent old tuples from being # removed. test: vacuum_full_ao test: vacuum_full_freeze_heap test: vacuum_full_heap test: vacuum_full_heap_bitmapindex test: ao_checksum_corruption AOCO_Compression2 table_statistics test: metadata_track test: workfile_mgr_test test: psql_gp_commands pg_resetxlog # end of tests