# ----------
# data partition
# ----------
# --------------------------
# usecases for improving coverage 
# --------------------------
test: vec_hashjoin1 single_node_rangetypes db4ai_explain_model test_ustore_toast ustore_ddl ts_utf8 test_ustore_update test_ustore_index
test: sqlldr/gs_loader_basic psql parse_xlog cgin_test create_index_gist hw_user rowlevelsecurity query_self_tuning hw_partition_llt

test: physical_slot

test: hw_smp

# test MERGE INTO

# test INSERT UPDATE UPSERT
#test: insert_update_002 insert_update_003 insert_update_008 insert_update_009 insert_update_010
#test: insert_update_001#
test: delete update namespace case select_having select_implicit test_cursor_arg_defexpr
test: hw_test_operate_user multi_update update_multi_base_table_view
test: hw_createtbl_llt multi_delete
#test: gsqlerr#
test: sqlLLT
#test: hw_sql_llt#
test: split_partition
test: upsert_prepare
test: upsert_001 upsert_002 upsert_003 upsert_008 upsert_009 upsert_010
test: upsert_grammer_test_01 upsert_unlog_test upsert_tmp_test
test: upsert_grammer_test_02 upsert_restriction upsert_composite
test: upsert_trigger_test upsert_explain upsert_where upsert_where_sublink
test: upsert_subquery
test: upsert_clean

# all pass
# run tablespace by itself, and first, because it forces a checkpoint;
# we'd prefer not to have checkpoints later in the tests because that
# interferes with crash-recovery testing.
test: hw_alter_session
test: tablespace
test: hw_account_lock

# ----------
# Another group of parallel tests
# ----------
#test: hw_independent_user hw_user_basic hw_user_revoke hw_user_privilege hw_user_pguser hw_user_namespace
test: hw_interval_format hw_function_p_3 hw_function_p_4 hw_current_schema hw_functions
#test: hw_function_p_1 hw_function_p_2#
test: hw_dba_enable_partition hw_tablespace
test: hw_procedure_define 
#test: hw_anonymous_block
#test: hw_procedure#
test: hw_grant_all hw_dynamic_sql hw_func_return_out
test: hw_package_function type_replace type_with_event_trigger

#show plan
#test: plan_hint

###split from parallel_schedule4###

# ----------
# Another group of parallel tests
# ----------
# plsql_packages tests

test: hw_empty_str_to_null
test: hw_schema

test: tpchrush
test: tpch01 tpch03 tpch04 libcomm_check_status tpch03_querymem
test: tpch05 tpch06 tpch07 tpch08
test: tpch09 tpch10 tpch11 tpch12
test: tpch13 tpch14 tpch15 tpch16
test: tpch_vector_optimal
test: tpch18 tpch19 tpch20 tpch18_querymem
test: tpch21 tpch22 tpch11_pretty_performance vector_procedure
#test: tpch02 tpch17 

#test export
test: temp__2

test: vec_prepare_001 vec_prepare_002
test: vec_prepare_003

#test function pg_prepared_statement(sessionid)
test: function_pg_prepared_statement1 function_pg_prepared_statement2

#test sort optimize
test: sort_optimize_row sort_optimize_column sort_optimize_001
#test early free
test: early_free
#test sublink enhanced, including pullup-non-correlated-sublink and winmagic
test: sublink_pullup_enhance
#test for col tpch with vector engine disabled
test: tpch_disablevec01 tpch_disablevec03 tpch_disablevec04
test: tpch_disablevec05 tpch_disablevec06 tpch_disablevec07
test: tpch_disablevec08 tpch_disablevec09 tpch_disablevec12
test: tpch_disablevec13 tpch_disablevec14 tpch_disablevec16
test: tpch_disablevec18 tpch_disablevec19 tpch_disablevec21

# ----------
# Postgres-XC additional tests
# ----------

# This was used by triggers
test: xc_create_function
# Now xc_misc is used by xc_returning_step1 and xc_returning_step2
test: xc_misc
# Those ones can be run in parallel
test: xc_groupby xc_distkey xc_having
#test: hw_rewrite_lazyagg hw_light
test: xc_temp xc_FQS 
test: xc_remote hw_pbe
test: xc_FQS_join xc_copy 
#test: xc_alter_table
test: xc_constraints xc_limit xc_sort
#test: xc_params xc_returning_step1
test: xc_params
test: xc_returning_step2

#test row compress
#test: compress compress01 compress02 cmpr_toast_000 cmpr_toast_update cmpr_index_00 cmpr_6bytes cmpr_int cmpr_datetime cmpr_numstr cmpr_numstr01 cmpr_float cmpr_nulls_delta cmpr_nulls_prefix cmpr_copyto cmpr_mode_none00 cmpr_mode_none01 cmpr_references_00 cmpr_references_01
#test: cmpr_rollback cmpr_drop_column cmpr_drop_column_01 cmpr_drop_column_02 cmpr_drop_column_03 cmpr_dead_loop_00 cmpr_timewithzone cmpr_cluster_00

# Cluster setting related test is independant


test: xc_dml
# ---------------------------
# test cases for CStore
# ---------------------------
#test: hw_cstore_alter cstore_alter_table2 cstore_alter_table3 cstore_alter_table4 cstore_alter_table5 cstore_alter_table6 cstore_alter_table8 cstore_alter_table9 cstore_alter_table10 hw_cstore_copy hw_alter_table_instant hw_cstore_copy1
#test: cstore_alter_table cstore_alter_table1 cstore_alter_table7 

test: hw_cstore_tablespace_1 hw_cstore_tablespace_2 hw_cstore_tablespace_3 hw_cstore_tablespace_4 hw_cstore_tablespace_5 hw_cstore_truncate hw_cstore_update
#test: hw_cstore_roughcheck
test: hw_cstore_partition_update hw_cstore_partition_update1 hw_cstore_partition_update2 hw_cstore_partition

#------------------------------
# CStore compression test cases
#-----------------------------
test: cstore_cmpr_delta cstore_cmpr_date cstore_cmpr_timestamp_with_timezone cstore_cmpr_time_with_timezone cstore_cmpr_delta_nbits cstore_cmpr_delta_int cstore_cmpr_str cstore_cmpr_dict_00 cstore_cmpr_rle_2byte_runs
test: cstore_cmpr_every_datatype cstore_cmpr_zlib cstore_unsupported_feature cstore_unsupported_feature1 cstore_cmpr_rle_bound cstore_cmpr_rle_bound1 cstore_nan cstore_infinity cstore_log2_error cstore_create_clause cstore_create_clause1 cstore_nulls_00 cstore_partial_cluster_info
test: cstore_replication_table_delete

test: hw_cstore_index hw_cstore_index1 hw_cstore_index2
test: hw_cstore_vacuum
test: hw_cstore_insert hw_cstore_delete hw_cstore_unsupport

# test on extended statistics
test: hw_es_multi_column_stats_prepare hw_es_multi_column_stats_eqclass
test: hw_es_multi_column_stats_1 hw_es_multi_column_stats_1_1 hw_es_multi_column_stats_1_2 hw_es_multi_column_stats_1_3 hw_es_multi_column_stats_1_4 hw_es_multi_column_stats_1_5 hw_es_multi_column_stats_1_6 hw_es_multi_column_stats_2_1 hw_es_multi_column_stats_2_2 hw_es_multi_column_stats_2_3 hw_es_multi_column_stats_3 hw_es_multi_column_stats_3_1 hw_es_multi_column_stats_3_2
test: hw_es_multi_column_stats_end

test: limit1 setop setop_1 setop_2
#test: checksum
test: distinct prepare1
test: unsupported_features statistic statistic_2

test: hw_setop_writefile

test: vec_nestloop_pre vec_mergejoin_prepare vec_result vec_limit vec_mergejoin_1 vec_mergejoin_2 vec_stream force_vector_engine force_vector_engine2 vec_asofjoin
test: vec_mergejoin_inner vec_mergejoin_left vec_mergejoin_semi vec_mergejoin_anti llvm_vecexpr1 llvm_vecexpr2 llvm_vecexpr3 llvm_target_expr llvm_target_expr2 llvm_target_expr3 llvm_vecexpr_td
#test: vec_nestloop1
test: vec_mergejoin_aggregation llvm_vecagg llvm_vecagg2 llvm_vecagg3 llvm_vechashjoin vector_subpartition
#test: vec_nestloop_end

# ----------$
# The first group of parallel tests$
# ----------$
test: boolean name oid bit txid uuid numeric_hide_tailing_zero rawlike to_char
#test: float8 numeric char varchar text int2 int4 float4 numeric_2 money

# Depends on things setup during char, varchar and text
# Depends on int2, int4, int8, float4, float8
#test: strings numerology

# ----------
# The second group of parallel tests
# ----------
#test: lseg box path polygon circle date time timetz timestamptz abstime reltime inet
test: interval tinterval macaddr tstypes comments ignore_double_quotes
#test: point timestamp

# ----------
# Another group of parallel tests
# geometry depends on point, lseg, box, path, polygon and circle
# horology depends on interval, timetz, timestamp, timestamptz, reltime and abstime
# ----------
#test: geometry horology

# ----------
# Load huge amounts of data
# We should split the data files into single files and then
# execute two copy tests parallel, to check that copy itself
# is concurrent safe.(duplicate)
# ----------
test: copyselect copy_error_log copy_support_transform copy_from_support_parallel
test: copy_new_gram copy_gbk_test copy_gb18030_test
#test: copy_eol

# ----------
# More groups of parallel tests
# ----------
#test: create_index

###split from parallel_schedule2###
#test: hw_sec_account_lock_unlock rowlevelsecurity
test: resolve_unknown
test: query_rewrite
test: create_schema 
test: create_schema2
#test: view_dump
test: hw_function_p_3 hw_function_p_4
#test: hw_function_p_2
#test: hw_function_p_1
test: create_c_function
test: cstore_replication_table_delete

test: hw_cursor_part1 hw_cursor_part2 hw_cursor_part3 hw_cursor_part4 hw_cursor_part5 hw_cursor_part6 hw_cursor_part7 hw_cursor_part8
test: vec_append_part1 vec_append_part2 vec_append_part3
test: vec_cursor_part1 vec_cursor_part2
test: vec_delete_part1 vec_delete_part2
test: vec_set_func
test: hw_cursor_rollback hw_cursor_rollback_ustore

test: alter_schema_db_rename_seq alter_sequence_001 alter_seq_max_in_txn

test: a_outerjoin_conversion

# test on plan_table
#test: plan_table04

test: setrefs
test: agg window_agg_stream_test
test: aggregates_hypothetical

# test sql by pass
test: bypass_simplequery_support
test: bypass_preparedexecute_support
test: sqlbypass_partition
test: sqlbypass_partition_prepare

# test srf_fusion
# Please fell free to execute each case independently
test: srf_fusion srf_fusion_basic srf_fusion_agg
 
test: string_digit_to_numeric tablesample_3 tablesample_4
# Another group of parallel tests
# ----------
#test: collate tablesample tablesample_1 tablesample_2 matview
test: matview_single matview_with_event_trigger matview_dump

# ----------
# Another group of parallel tests
# ----------
test: hll_hash hll_func hll_para hll_mpp hll_cstore hll_misc

test: function_get_table_def

# ----------
# Another group of parallel tests
# ----------
test: hw_order


# temp__3 create_table copy vec_prepare_001 vec_prepare_002 vec_prepare_003 int4 int8 are duplicated
test: temp__3

#security_plugin
test: sp_set_policy_plugin_enable
test: sp_masking_udf
test: sp_set_policy_plugin_disable

# ----------
# Another group of parallel tests
# NB: temp.sql does a reconnect which transiently uses 2 connections,
# so keep this parallel group to at most 19 tests
# ----------
#test: plpgsql
test: select_where_func
test: arrayinterface_single
test: plpgsql_table_opengauss  
test: plpgsql_assign_value_to_array_attribute
test: plpgsql_array_of_record
#test: plpgsql_nest_compile
test: arrayinterface_ted
test: function_default_test plpgsql_inout_param
test: plpgsql_cursor_rowtype
test: plpgsql_default_value_various_type
test: plpgsql_assign_list
test: plpgsql_package_type plpgsql_package_param
test: plpgsql_record_attrname
test: plpgsql_insert_record plpgsql_condition_name
test: hw_package_variable package_typmod_test
test: autonomous_cursor
test: plpgsql_reset_session plpgsql_nested_array_and_record
#test: plpgsql_depend
test: plpgsql_depend/plpgsql_depend_type  plpgsql_depend/plpgsql_pkg_dependency plpgsql_depend/plpgsql_recompile plpgsql_depend/plpgsql_pkg_variable_dependency plpgsql_depend/plpgsql_depend_reftype
#test: plancache limit rangefuncs prepare
test: returning largeobject large_object_permission
test: hw_explain_pretty1 hw_explain_pretty2 hw_explain_pretty3
test: goto
test: equivalence_class
test: tsdb_delta2_compress
test: tsdb_xor_compress plpgsql_custom_exception
#test: tsdb_aggregate

test: readline
test: hw_to_timestamp hw_view_privilege

test: hw_identifier
#test: hw_hashint1 hw_smalldatetime_hash hw_rawtype_hash
#test: hw_nvarchar2_hash cmpr_smallint cmpr_prefix_150left cmpr_uint32_oid
test: oidjoins opr_sanity_2 regex regex2 regex.linux.utf8
#test: opr_sanity_1

test: pmk
# Cluster setting related test is independant
# ----------
# Test of changed data type compatible with Oracle

test: hw_datatype_2 hw_datatype_3
test: hw_datatype hw_datatype_set
test: test_regex llt_atc

# test for inherit table
test: inherits01

# ----------
# test for set operations
# ----------
test: select_nest_views
#test: enum
#show plan
test: col_joinplan col_joinnew
test: col_limit col_distinct col_prepare
test: col_function_1 col_function_2 col_count_distinct_1 col_count_distinct_2 col_count_distinct_3 col_count_distinct_4
test: directory_test
test: analyse_verify
test: create_compositetype
test: hw_pct_type_and_rowtype
#test: create_basetype
#test: tabletype
#test with recursive
test: with_002
test: recursive_ref_recursive
#test: recursive_prepare
#test: recursive_cte
#test: recursive_cte_col
#test: nohashjoin_recursive_cte
#test: nohashjoin_recursive_cte_col
#test: others
#test: icbc_customer
#test: recursive_unshippable
#test: recursive_finalize
#test: recursive_cte_1
test: test_relpages

test: temp__3
test: vec_window_pre
test: gin_test_2
#test: window1
test: vec_window_001
#test: vec_window_002
test: vec_numeric_sop_1 vec_numeric_sop_2 vec_numeric_sop_3 vec_numeric_sop_4 vec_numeric_sop_5
#test: vec_window_end

#test analyze partition
test: partition_level_stats hw_partition_to_predicates

test: vec_unique_pre vec_bitmap_prepare
test: vec_unique vec_setop_001 vec_setop_002 vec_setop_003 vec_setop_004 hw_vec_int4 hw_vec_int8 hw_vec_float4 hw_vec_float8
#test: vec_setop_005
test: hw_vec_constrainst vec_numeric vec_numeric_1 vec_numeric_2 vec_bitmap_1 vec_bitmap_2
test: disable_vector_engine
test: hybrid_row_column
test: retry
test: hw_replication_slots
test: insert insert_right_ref rules
test: copy2 temp
test: truncate
#test: temp_table

test: b_compatibility
test: hw_compatibility
test: hw_groupingsets hw_row_grouping_set
test: char_truncation_common char_truncation_cast

#this case is dispatched from schedule10(gin_test)
test: gin_test1 gin_test2 gin_test3

#the fallowing part is dispatched from schedule15

# FIXME: move me back to the parallel test when the refcnt issue is fixed
# Below two teste are unstable, temporarily ignoring. This is same to distribute_dattistic, relallvisible, Dongwang will solve the problem.

#test: hw_expression_alias


#==========================================================================================================================================
# privilege test
test: predefined_roles
test: gs_db_privilege
test: any_privs

# ----------
# src/test/regress/parallel_schedule.33
#
# By convention, we put no more than twenty tests in any one parallel group;
# this limits the number of connections needed to run the tests.
# ----------


test: udf_crem

test: create_c_function

#---1. Drop-Column test
test: cstore_drop_column_replicated
#test: cstore_drop_column

#split from parallel_schedule2

# ----------
# Advisory lock need to be tested in series in Postgres-XC
# ---------
test: advisory_lock

# ----------
# Another group of parallel tests
# ----------
test: cluster dependency bitmapops tsdicts functional_deps
test: json_and_jsonb json jsonb jsonb2 jsonpath
#test: guc

# test for vec sonic hash
test: vec_sonic_hashjoin_number_prepare
test: vec_sonic_hashjoin_number_nospill

test: timeout
test: dml
test: hashfilter hashfilter_1
test: reduce_orderby
#test: backtrace_log
#test: bulkload_start
test: bulkload_parallel_test_2 bulkload_parallel_test_3
#test: bulkload_parallel_test_1 bulkload_parallel_test_4

test: tpchcol05 tpchcol07 tpchcol08 tpchcol09

test: tpchcol01
test: tpchcol06
test: tpchcol03 tpchcol04
test: tpchcol12 tpchcol13 tpchcol14 tpchcol16 tpchcol18 tpchcol19 tpchcol21

test: vec_partition vec_partition_1 vec_material_001
test: vec_m_file
test: llvm_vecsort llvm_vecsort2

test: udf_crem create_c_function

# procedure, Function Test
#test: create_procedure
test: create_function
test: pg_compatibility test_index_include

test: alter_trigger