This is an automated email from the ASF dual-hosted git repository. djwang pushed a commit to branch REL_2_STABLE in repository https://gitbox.apache.org/repos/asf/cloudberry.git
commit 0648d432bce645552cf3e6c2e845b8a31a75ba23 Merge: 27e86546ef8 93870d832bc Author: Dianjin Wang <[email protected]> AuthorDate: Thu Jan 29 16:36:38 2026 +0800 Merge branch 'cp_main' into REL_2_STABLE .abi-check/7.1.0/postgres.symbols.ignore | 11 + .asf.yaml | 13 + .github/workflows/README.md | 258 + .github/workflows/apache-rat-audit.yml | 347 + .github/workflows/build-cloudberry.yml | 231 +- .github/workflows/build-dbg-cloudberry.yml | 69 +- ...ild-cloudberry.yml => build-deb-cloudberry.yml} | 723 +- .github/workflows/docker-cbdb-build-containers.yml | 226 + .github/workflows/docker-cbdb-test-containers.yml | 199 + .github/workflows/sonarqube.yml | 16 +- GNUmakefile.in | 19 +- NOTICE | 2 +- README.apache.md | 12 + README.md | 12 +- configure | 353 +- configure.ac | 64 +- contrib/Makefile | 6 + contrib/amcheck/expected/check_heap.out | 10 +- contrib/amcheck/t/001_verify_heapam.pl | 18 +- contrib/amcheck/t/003_cic_2pc.pl | 7 +- contrib/btree_gin/expected/enum.out | 29 +- contrib/btree_gin/sql/enum.sql | 25 +- contrib/btree_gist/expected/bit_optimizer.out | 2 +- contrib/btree_gist/expected/bytea_optimizer.out | 2 +- contrib/btree_gist/expected/cash_optimizer.out | 2 +- contrib/btree_gist/expected/char_optimizer.out | 2 +- contrib/btree_gist/expected/date_optimizer.out | 2 +- contrib/btree_gist/expected/enum_optimizer.out | 2 +- contrib/btree_gist/expected/float4_optimizer.out | 2 +- contrib/btree_gist/expected/float8_optimizer.out | 2 +- contrib/btree_gist/expected/inet_optimizer.out | 4 +- contrib/btree_gist/expected/int2_optimizer.out | 2 +- contrib/btree_gist/expected/int4_optimizer.out | 2 +- contrib/btree_gist/expected/int8_optimizer.out | 2 +- contrib/btree_gist/expected/interval_optimizer.out | 4 +- contrib/btree_gist/expected/macaddr8_optimizer.out | 2 +- contrib/btree_gist/expected/macaddr_optimizer.out | 2 +- .../btree_gist/expected/not_equal_optimizer.out | 2 +- contrib/btree_gist/expected/numeric_optimizer.out | 2 +- contrib/btree_gist/expected/text_optimizer.out | 2 +- contrib/btree_gist/expected/time_optimizer.out | 2 +- .../btree_gist/expected/timestamp_optimizer.out | 2 +- .../btree_gist/expected/timestamptz_optimizer.out | 2 +- contrib/btree_gist/expected/varbit_optimizer.out | 2 +- contrib/dblink/dblink.c | 3 +- contrib/interconnect/ic_common.c | 11 +- contrib/interconnect/ic_internal.h | 52 + contrib/interconnect/test/ic_test_env.c | 2 + contrib/interconnect/udp/ic_udpifc.c | 966 ++- contrib/interconnect/udp/ic_udpifc.h | 3 + contrib/pax_storage/.gitignore | 1 + contrib/pax_storage/CMakeLists.txt | 7 +- contrib/pax_storage/doc/README.md | 25 +- contrib/pax_storage/doc/README.toast.md | 2 +- contrib/pax_storage/expected/cluster.out | 4 +- contrib/pax_storage/expected/filter.out | 6 +- contrib/pax_storage/expected/filter_1.out | 6 +- contrib/pax_storage/expected/filter_tree.out | 12 +- contrib/pax_storage/expected/filter_tree_1.out | 12 +- .../expected/filter_tree_arithmetic.out | 4 +- .../expected/filter_tree_arithmetic_1.out | 4 +- .../pax_storage/expected/filter_tree_optimizer.out | 12 +- .../expected/filter_tree_optimizer_1.out | 12 +- .../expected/filter_tree_root_quals.out | 4 +- .../expected/filter_tree_root_quals_1.out | 4 +- .../expected/statistics/min_max_bit_byte_types.out | 12 +- .../expected/statistics/min_max_float_types.out | 12 +- .../expected/statistics/min_max_geo_types.out | 12 +- .../expected/statistics/min_max_int_types.out | 12 +- .../expected/statistics/min_max_net_types.out | 12 +- .../expected/statistics/min_max_other_types.out | 12 +- .../expected/statistics/min_max_text_types.out | 12 +- .../expected/statistics/min_max_time_types.out | 12 +- .../pax_storage/expected/statistics/statistics.out | 10 +- .../expected/statistics_bloom_filter.out | 20 +- contrib/pax_storage/expected/toast.out | 6 +- contrib/pax_storage/expected/toast_failed.out | 2 +- .../pax_storage/expected/visimap_vec_compact.out | 4 +- .../pax_storage/expected/visimap_vec_compact_1.out | 4 +- .../pax_storage/expected/visimap_vec_storage.out | 4 +- .../pax_storage/expected/visimap_vec_storage_1.out | 4 +- contrib/pax_storage/sql/cluster.sql | 4 +- contrib/pax_storage/sql/filter.sql | 6 +- contrib/pax_storage/sql/filter_tree.sql | 8 +- contrib/pax_storage/sql/filter_tree_arithmetic.sql | 4 +- contrib/pax_storage/sql/filter_tree_root_quals.sql | 4 +- .../sql/statistics/min_max_bit_byte_types.sql | 12 +- .../sql/statistics/min_max_float_types.sql | 12 +- .../sql/statistics/min_max_geo_types.sql | 12 +- .../sql/statistics/min_max_int_types.sql | 12 +- .../sql/statistics/min_max_net_types.sql | 12 +- .../sql/statistics/min_max_other_types.sql | 12 +- .../sql/statistics/min_max_text_types.sql | 12 +- .../sql/statistics/min_max_time_types.sql | 12 +- contrib/pax_storage/sql/statistics/statistics.sql | 10 +- .../pax_storage/sql/statistics_bloom_filter.sql | 20 +- contrib/pax_storage/sql/toast.sql | 6 +- contrib/pax_storage/sql/toast_failed.sql | 2 +- contrib/pax_storage/sql/visimap_vec_compact.sql | 4 +- contrib/pax_storage/sql/visimap_vec_storage.sql | 4 +- .../src/api/python3/paxfilereader_type.cc | 9 +- contrib/pax_storage/src/api/python3/setup-debug.py | 4 +- contrib/pax_storage/src/api/python3/setup.py | 4 +- .../src/cpp/access/pax_access_handle.cc | 10 +- .../pax_storage/src/cpp/access/pax_access_handle.h | 3 - .../pax_storage/src/cpp/access/pax_dml_state.cc | 4 +- contrib/pax_storage/src/cpp/access/pax_scanner.cc | 10 +- contrib/pax_storage/src/cpp/access/pax_visimap.cc | 3 +- .../pax_storage/src/cpp/access/paxc_rel_options.cc | 4 + .../pax_storage/src/cpp/access/paxc_rel_options.h | 1 + contrib/pax_storage/src/cpp/catalog/manifest_api.h | 4 +- .../pax_storage/src/cpp/catalog/pax_aux_table.cc | 2 +- .../src/cpp/clustering/pax_clustering_reader.cc | 6 +- contrib/pax_storage/src/cpp/cmake/pax.cmake | 10 +- contrib/pax_storage/src/cpp/cmake/pax_format.cmake | 8 +- contrib/pax_storage/src/cpp/comm/bitmap.h | 97 +- contrib/pax_storage/src/cpp/comm/bitmap_test.cc | 28 +- contrib/pax_storage/src/cpp/comm/cbdb_wrappers.cc | 6 - contrib/pax_storage/src/cpp/comm/cbdb_wrappers.h | 6 +- .../src/cpp/{pax_gbench.cc => comm/common_io.h} | 23 +- contrib/pax_storage/src/cpp/comm/fast_io.cc | 145 + contrib/pax_storage/src/cpp/comm/fast_io.h | 88 + contrib/pax_storage/src/cpp/comm/guc.cc | 42 +- contrib/pax_storage/src/cpp/manifest/manifest.c | 7 +- contrib/pax_storage/src/cpp/manifest/tuple.c | 1 - contrib/pax_storage/src/cpp/pax_gbench.cc | 302 +- contrib/pax_storage/src/cpp/pax_gbench.h | 72 + contrib/pax_storage/src/cpp/pax_gtest_helper.cc | 64 +- contrib/pax_storage/src/cpp/pax_gtest_helper.h | 4 + .../src/cpp/storage/columns/pax_column.cc | 27 +- .../src/cpp/storage/columns/pax_column.h | 32 +- .../src/cpp/storage/columns/pax_column_test.cc | 47 +- .../src/cpp/storage/columns/pax_columns.cc | 8 +- .../src/cpp/storage/columns/pax_compress.cc | 15 +- .../src/cpp/storage/columns/pax_compress_bench.cc | 421 ++ .../src/cpp/storage/columns/pax_decoding.cc | 3 +- .../src/cpp/storage/columns/pax_delta_encoding.cc | 511 ++ .../src/cpp/storage/columns/pax_delta_encoding.h | 135 + .../cpp/storage/columns/pax_delta_encoding_test.cc | 339 + .../src/cpp/storage/columns/pax_dict_encoding.h | 15 +- .../src/cpp/storage/columns/pax_encoding.cc | 4 +- .../src/cpp/storage/columns/pax_encoding.h | 2 + .../src/cpp/storage/columns/pax_encoding_column.cc | 6 +- .../src/cpp/storage/columns/pax_encoding_column.h | 2 +- .../columns/pax_encoding_non_fixed_column.cc | 100 +- .../columns/pax_encoding_non_fixed_column.h | 7 +- .../src/cpp/storage/columns/pax_encoding_test.cc | 92 + .../src/cpp/storage/columns/pax_rlev2_encoding.h | 4 + .../cpp/storage/columns/pax_vec_encoding_column.cc | 2 +- .../cpp/storage/columns/pax_vec_encoding_column.h | 3 + contrib/pax_storage/src/cpp/storage/file_system.cc | 10 + contrib/pax_storage/src/cpp/storage/file_system.h | 2 + .../src/cpp/storage/filter/pax_filter.cc | 3 +- .../src/cpp/storage/filter/pax_filter.h | 2 +- .../src/cpp/storage/filter/pax_sparse_filter.h | 4 +- .../src/cpp/storage/filter/pax_sparse_pg_path.cc | 62 +- .../src/cpp/storage/local_file_system.cc | 22 + .../pax_storage/src/cpp/storage/micro_partition.cc | 2 +- .../pax_storage/src/cpp/storage/micro_partition.h | 9 +- .../cpp/storage/micro_partition_file_factory.cc | 10 +- .../src/cpp/storage/micro_partition_file_factory.h | 8 +- .../storage/micro_partition_file_factory_test.cc | 30 +- .../src/cpp/storage/micro_partition_iterator.cc | 4 +- .../src/cpp/storage/micro_partition_stats.cc | 2 - .../src/cpp/storage/micro_partition_stats_test.cc | 36 +- .../src/cpp/storage/orc/orc_dump_reader.cpp | 6 +- .../src/cpp/storage/orc/orc_format_reader.cc | 74 +- .../src/cpp/storage/orc/orc_format_reader.h | 6 +- .../pax_storage/src/cpp/storage/orc/orc_group.cc | 10 +- .../pax_storage/src/cpp/storage/orc/orc_group.h | 6 +- .../pax_storage/src/cpp/storage/orc/orc_reader.cc | 8 +- .../pax_storage/src/cpp/storage/orc/orc_test.cc | 257 +- .../src/cpp/storage/orc/orc_vec_group.cc | 2 +- .../src/cpp/storage/orc/orc_vec_test.cc | 4 +- .../pax_storage/src/cpp/storage/orc/orc_writer.cc | 48 +- contrib/pax_storage/src/cpp/storage/orc/porc.h | 17 +- contrib/pax_storage/src/cpp/storage/pax.cc | 63 +- contrib/pax_storage/src/cpp/storage/pax.h | 1 + contrib/pax_storage/src/cpp/storage/pax_defined.h | 2 +- .../pax_storage/src/cpp/storage/proto/pax.proto | 1 + .../pax_storage/src/cpp/storage/toast/pax_toast.cc | 20 +- .../pax_storage/src/cpp/storage/toast/pax_toast.h | 2 +- .../src/cpp/storage/vec/pax_porc_adpater.cc | 51 +- .../src/cpp/storage/vec/pax_vec_comm.cc | 4 +- .../src/cpp/storage/vec_parallel_common.cc | 2 +- .../src/cpp/storage/vec_parallel_pax.cc | 2 +- .../regress/expected/DML_over_joins_optimizer.out | 29 +- .../src/test/regress/expected/autostats.out | 2 +- .../test/regress/expected/bfv_joins_optimizer.out | 40 +- .../src/test/regress/expected/create_index.out | 1 - .../regress/expected/create_index_optimizer.out | 1 - .../test/regress/expected/create_table_distpol.out | 2 - .../src/test/regress/expected/gp_dqa_optimizer.out | 60 +- .../src/test/regress/expected/gp_toolkit.out | 2 +- .../src/test/regress/expected/gporca.out | 8 +- .../src/test/regress/expected/gporca_optimizer.out | 389 +- .../src/test/regress/expected/groupingsets.out | 2 + .../regress/expected/groupingsets_optimizer.out | 16 +- .../test/regress/expected/incremental_analyze.out | 2 +- .../src/test/regress/expected/limit.out | 2 +- .../src/test/regress/expected/limit_optimizer.out | 33 +- .../regress/expected/misc_functions_optimizer.out | 50 +- .../test/regress/expected/olap_plans_optimizer.out | 116 +- .../src/test/regress/expected/qp_misc.out | 12 +- .../regress/expected/qp_misc_rio_join_small.out | 6 +- .../src/test/regress/expected/qp_with_clause.out | 2 +- .../test/regress/expected/query_finish_pending.out | 14 +- .../src/test/regress/expected/rowsecurity.out | 14 +- .../regress/expected/rowsecurity_optimizer.out | 14 +- .../src/test/regress/expected/select_views.out | 4 +- .../regress/expected/select_views_optimizer.out | 4 +- .../regress/expected/shared_scan_optimizer.out | 2 +- .../src/test/regress/expected/stats_ext.out | 4 +- .../test/regress/expected/stats_ext_optimizer.out | 4 +- .../regress/expected/subselect_gp_optimizer.out | 100 +- .../src/test/regress/expected/tsrf_optimizer.out | 17 +- .../src/test/regress/input/external_table.source | 14 +- .../src/test/regress/input/temp_tablespaces.source | 2 +- .../pax_storage/src/test/regress/mem_quota_util.py | 2 +- .../src/test/regress/output/external_table.source | 26 +- .../regress/output/external_table_optimizer.source | 26 +- .../test/regress/output/temp_tablespaces.source | 2 +- .../src/test/regress/sql/agg_pushdown.sql | 3 + .../src/test/regress/sql/aggregates.sql | 3 + .../pax_storage/src/test/regress/sql/autostats.sql | 2 +- .../src/test/regress/sql/bfv_aggregate.sql | 3 + .../src/test/regress/sql/cbdb_parallel.sql | 2 +- .../src/test/regress/sql/create_index.sql | 1 - .../src/test/regress/sql/direct_dispatch.sql | 3 + .../pax_storage/src/test/regress/sql/eagerfree.sql | 3 + .../src/test/regress/sql/gp_aggregates_costs.sql | 3 + .../src/test/regress/sql/gp_hashagg.sql | 3 + .../pax_storage/src/test/regress/sql/gporca.sql | 11 +- .../src/test/regress/sql/groupingsets.sql | 2 + .../src/test/regress/sql/incremental_analyze.sql | 2 +- .../pax_storage/src/test/regress/sql/indexjoin.sql | 3 + contrib/pax_storage/src/test/regress/sql/limit.sql | 2 +- .../pax_storage/src/test/regress/sql/limit_gp.sql | 3 + .../src/test/regress/sql/olap_plans.sql | 3 + .../src/test/regress/sql/partition_aggregate.sql | 3 + .../src/test/regress/sql/partition_join.sql | 3 + .../pax_storage/src/test/regress/sql/qp_misc.sql | 16 +- .../test/regress/sql/qp_misc_rio_join_small.sql | 8 +- .../src/test/regress/sql/qp_with_clause.sql | 2 +- .../src/test/regress/sql/query_finish_pending.sql | 14 +- .../src/test/regress/sql/rowsecurity.sql | 4 +- .../src/test/regress/sql/select_distinct.sql | 3 + .../src/test/regress/sql/select_views.sql | 4 +- .../src/test/regress/sql/shared_scan.sql | 3 + .../pax_storage/src/test/regress/sql/stats_ext.sql | 4 +- .../src/test/regress/sql/tidrangescan.sql | 2 +- .../pax_storage/src/test/regress/sql/window.sql | 3 + contrib/pg_buffercache/expected/pg_buffercache.out | 28 +- .../pg_buffercache/pg_buffercache--1.3--1.4.sql | 11 + contrib/pg_buffercache/pg_buffercache_pages.c | 43 + contrib/pg_buffercache/sql/pg_buffercache.sql | 12 +- contrib/pg_stat_statements/pg_stat_statements.c | 14 +- contrib/pgstattuple/expected/pgstattuple.out | 15 +- contrib/udp2/CMakeLists.txt | 111 + contrib/udp2/Makefile | 70 + contrib/udp2/README.md | 247 + contrib/udp2/ic_common/CMakeLists.txt | 95 + contrib/udp2/ic_common/ic_except.hpp | 75 + contrib/udp2/ic_common/ic_faultinjection.h | 620 ++ contrib/udp2/ic_common/ic_types.h | 212 + contrib/udp2/ic_common/ic_utility.cpp | 1371 ++++ contrib/udp2/ic_common/ic_utility.hpp | 167 + contrib/udp2/ic_common/udp2/ic_udp2.cpp | 7649 ++++++++++++++++++++ contrib/udp2/ic_common/udp2/ic_udp2.h | 102 + contrib/udp2/ic_common/udp2/ic_udp2.hpp | 68 + contrib/udp2/ic_common/udp2/ic_udp2_internal.hpp | 1319 ++++ contrib/udp2/ic_modules.c | 88 + .../src/cpp/pax_gbench.cc => udp2/ic_modules.h} | 16 +- contrib/udp2/ic_udp2.c | 1028 +++ contrib/udp2/ic_udp2.h | 87 + deploy/README.md | 21 - devops/README.md | 108 + .../cloudberry/scripts/analyze_core_dumps.sh | 222 + .../cloudberry/scripts/build-cloudberry.sh | 91 + .../cloudberry/scripts/cloudberry-utils.sh | 175 + .../cloudberry/scripts/configure-cloudberry.sh | 178 + .../scripts/create-cloudberry-demo-cluster.sh | 125 + .../scripts/destroy-cloudberry-demo-cluster.sh | 101 + .../automation/cloudberry/scripts/parse-results.pl | 215 + .../cloudberry/scripts/parse-test-results.sh | 100 + .../cloudberry/scripts/test-cloudberry.sh | 81 + .../cloudberry/scripts/unittest-cloudberry.sh | 69 + devops/build/packaging/deb/build-deb.sh | 164 + devops/build/packaging/deb/ubuntu22.04/changelog | 5 + devops/build/packaging/deb/ubuntu22.04/compat | 1 + devops/build/packaging/deb/ubuntu22.04/control | 107 + devops/build/packaging/deb/ubuntu22.04/install | 1 + devops/build/packaging/deb/ubuntu22.04/postinst | 12 + devops/build/packaging/deb/ubuntu22.04/rules | 49 + .../build/packaging/deb/ubuntu22.04/source/format | 1 + .../packaging/deb/ubuntu22.04/source/local-options | 2 + .../rpm/apache-cloudberry-db-incubating.spec | 178 + .../rpm/apache-cloudberry-hll-incubating.spec | 68 + .../rpm/apache-cloudberry-pgvector-incubating.spec | 70 + devops/build/packaging/rpm/build-rpm.sh | 151 + .../build/packaging/rpm/cloudberry-dev-repo.spec | 52 + devops/deploy/docker/build/rocky8/Dockerfile | 215 + .../docker/build/rocky8/configs/90-cbdb-limits | 32 + .../docker/build/rocky8/configs/gpinitsystem.conf | 87 + .../docker/build/rocky8/configs/init_system.sh | 193 + .../docker/build/rocky8/tests/requirements.txt | 3 + .../tests/testinfra/test_cloudberry_db_env.py | 126 + devops/deploy/docker/build/rocky9/Dockerfile | 218 + .../docker/build/rocky9/configs/90-cbdb-limits | 32 + .../docker/build/rocky9/configs/gpinitsystem.conf | 89 + .../docker/build/rocky9/configs/init_system.sh | 192 + .../docker/build/rocky9/tests/requirements.txt | 3 + .../tests/testinfra/test_cloudberry_db_env.py | 129 + devops/deploy/docker/build/ubuntu22.04/Dockerfile | 199 + .../build/ubuntu22.04/configs/90-cbdb-limits | 32 + .../build/ubuntu22.04/configs/gpinitsystem.conf | 89 + .../build/ubuntu22.04/configs/init_system.sh | 195 + .../build/ubuntu22.04/tests/requirements.txt | 3 + .../tests/testinfra/test_cloudberry_db_env.py | 128 + devops/deploy/docker/test/rocky8/Dockerfile | 135 + .../docker/test/rocky8/configs/90-cbdb-limits | 32 + .../docker/test/rocky8/configs/gpinitsystem.conf | 87 + .../docker/test/rocky8/configs/init_system.sh | 221 + devops/deploy/docker/test/rocky9/Dockerfile | 135 + .../docker/test/rocky9/configs/90-cbdb-limits | 32 + .../docker/test/rocky9/configs/gpinitsystem.conf | 87 + .../docker/test/rocky9/configs/init_system.sh | 221 + devops/deploy/docker/test/ubuntu22.04/Dockerfile | 140 + .../docker/test/ubuntu22.04/configs/90-cbdb-limits | 32 + .../test/ubuntu22.04/configs/gpinitsystem.conf | 87 + .../docker/test/ubuntu22.04/configs/init_system.sh | 224 + devops/release/cloudberry-release.sh | 496 ++ devops/release/generate-changelog.sh | 101 + devops/sandbox/.env | 21 + devops/sandbox/Dockerfile.RELEASE.rockylinux9 | 287 + devops/sandbox/Dockerfile.main.rockylinux9 | 262 + devops/sandbox/README.md | 232 + devops/sandbox/configs/90-cbdb-limits.conf | 29 + devops/sandbox/configs/90-cbdb-sysctl.conf | 54 + devops/sandbox/configs/gpinitsystem_multinode | 138 + devops/sandbox/configs/gpinitsystem_singlenode | 140 + devops/sandbox/configs/init_system.sh | 190 + devops/sandbox/configs/multinode-gpinit-hosts | 2 + devops/sandbox/docker-compose-rockylinux9.yml | 81 + devops/sandbox/run.sh | 169 + devops/sandbox/sandbox-deployment.jpg | Bin 0 -> 143855 bytes devops/tools/elf_rockylinux_dependency_analyzer.py | 321 + devops/tools/elf_ubuntu_dependency_analyzer.py | 303 + devops/tools/s3-repo-sync-and-sign.sh | 266 + doc/src/sgml/pgbuffercache.sgml | 105 +- doc/src/sgml/ref/create_table.sgml | 4 +- doc/src/sgml/ref/create_table_as.sgml | 2 +- doc/src/sgml/ref/pg_dump.sgml | 10 - doc/src/sgml/ref/pg_dumpall.sgml | 4 - getversion | 2 +- gpAux/Makefile | 17 +- gpAux/client/install/src/windows/CreatePackage.bat | 4 +- .../install/src/windows/greenplum-clients.wxs | 2 +- ...lients_path.bat => cloudberry_clients_path.bat} | 0 ..._clients_path.sh => cloudberry_clients_path.sh} | 15 - gpAux/gpdemo/Makefile | 2 +- gpAux/gpdemo/README | 6 +- gpAux/gpdemo/demo_cluster.sh | 4 +- gpAux/releng/gppkg.mk | 4 +- gpMgmt/Makefile | 6 +- gpMgmt/bin/Makefile | 34 +- gpMgmt/bin/README.md | 2 +- gpMgmt/bin/analyzedb | 2 +- gpMgmt/bin/generate-cloudberry-env.sh | 63 + gpMgmt/bin/generate-greenplum-path.sh | 100 - gpMgmt/bin/gpactivatestandby | 2 +- gpMgmt/bin/gpcheckresgroupv2impl | 41 +- gpMgmt/bin/gpconfig | 17 +- gpMgmt/bin/gpdeletesystem | 2 +- gpMgmt/bin/gpdirtableload | 4 +- gpMgmt/bin/gpexpand | 2 +- gpMgmt/bin/gpinitstandby | 2 +- gpMgmt/bin/gpinitsystem | 2 +- gpMgmt/bin/gpload | 2 +- gpMgmt/bin/gpload.py | 2 +- gpMgmt/bin/gpload_test/gpload2/README | 2 +- gpMgmt/bin/gpload_test/gpload2/TEST_local_base.py | 2 +- gpMgmt/bin/gplogfilter | 2 +- gpMgmt/bin/gpmemwatcher | 2 +- gpMgmt/bin/gpmovemirrors | 2 +- gpMgmt/bin/gppylib/commands/base.py | 4 +- .../gppylib/commands/test/unit/test_unit_base.py | 6 +- gpMgmt/bin/gppylib/gpresgroup.py | 30 +- gpMgmt/bin/gppylib/operations/package.py | 2 +- gpMgmt/bin/gppylib/programs/clsRecoverSegment.py | 5 - gpMgmt/bin/gppylib/programs/gppkg.py | 2 +- gpMgmt/bin/gppylib/utils.py | 2 +- gpMgmt/bin/gpshrink | 2 +- gpMgmt/bin/gpssh | 4 +- gpMgmt/bin/gpstart | 6 +- gpMgmt/bin/gpstop | 6 +- gpMgmt/bin/lib/gp_bash_functions.sh | 4 +- gpMgmt/bin/lib/gpcreateseg.sh | 4 +- gpMgmt/doc/gpfdist_help | 11 +- gpMgmt/doc/gplogfilter_help | 4 +- gpMgmt/doc/gpssh_help | 2 +- gpMgmt/sbin/gpconfig_helper.py | 2 +- gpMgmt/test/README | 2 +- gpMgmt/test/behave/mgmt_utils/gpinitsystem.feature | 2 +- gpMgmt/test/behave/mgmt_utils/steps/mgmt_utils.py | 36 +- .../behave_utils/gpfdist_utils/gpfdist_mgmt.py | 4 +- gpMgmt/test/behave_utils/utils.py | 2 +- gpcontrib/Makefile | 4 - gpcontrib/gp_exttable_fdw/Makefile | 1 + gpcontrib/gp_exttable_fdw/extaccess.c | 18 + gpcontrib/gp_inject_fault/Makefile | 4 +- gpcontrib/gpcloud/src/s3utils.cpp | 15 + gpcontrib/gpmapreduce/input/mapred.source | 2 +- gpcontrib/gpmapreduce/output/mapred.source | 2 +- .../output/{mapred.source => mapred_1.source} | 10 +- gpcontrib/pg_hint_plan/pg_hint_plan.c | 12 +- gpcontrib/quicklz/.gitignore | 10 - gpcontrib/quicklz/Makefile | 37 - gpcontrib/quicklz/expected/AOCO_quicklz.out | 24 - gpcontrib/quicklz/expected/AORO_quicklz.out | 24 - gpcontrib/quicklz/expected/compression_quicklz.out | 99 - .../expected/quicklz_column_compression.out | 99 - gpcontrib/quicklz/quicklz_compression.c | 214 - gpcontrib/quicklz/quicklz_compressor.sql | 23 - gpcontrib/quicklz/sql/AOCO_quicklz.sql | 13 - gpcontrib/quicklz/sql/AORO_quicklz.sql | 14 - gpcontrib/quicklz/sql/compression_quicklz.sql | 42 - .../quicklz/sql/quicklz_column_compression.sql | 63 - mcp-server/README.md | 399 + mcp-server/dotenv.example | 31 + mcp-server/pyproject.toml | 70 + mcp-server/pytest.ini | 32 + mcp-server/run_tests.sh | 38 + mcp-server/src/cbmcp/__init__.py | 32 + mcp-server/src/cbmcp/__main__.py | 27 + mcp-server/src/cbmcp/client.py | 158 + mcp-server/src/cbmcp/config.py | 73 + mcp-server/src/cbmcp/database.py | 773 ++ mcp-server/src/cbmcp/prompt.py | 62 + mcp-server/src/cbmcp/security.py | 96 + mcp-server/src/cbmcp/server.py | 551 ++ mcp-server/tests/README.md | 115 + mcp-server/tests/test_cbmcp.py | 338 + mcp-server/tests/test_database_tools.py | 303 + pom.xml | 28 +- src/Makefile.global.in | 3 +- src/Makefile.shlib | 10 +- src/backend/.gitignore | 2 + src/backend/Makefile | 44 +- src/backend/access/aocs/aocsam.c | 470 +- src/backend/access/aocs/aocsam_handler.c | 100 +- src/backend/access/appendonly/appendonlyam.c | 363 +- .../access/appendonly/appendonlyam_handler.c | 113 +- .../access/appendonly/appendonlyblockdirectory.c | 177 +- src/backend/access/common/reloptions_gp.c | 36 +- src/backend/access/external/external.c | 9 +- src/backend/access/gin/ginpostinglist.c | 11 +- src/backend/access/heap/heapam.c | 8 + src/backend/access/heap/heapam_handler.c | 1 - src/backend/access/heap/heaptoast.c | 2 +- src/backend/access/rmgrdesc/standbydesc.c | 11 + src/backend/access/table/tableamapi.c | 2 + src/backend/access/transam/README | 45 + src/backend/access/transam/parallel.c | 5 +- src/backend/access/transam/xact.c | 67 +- src/backend/access/transam/xlog.c | 247 +- src/backend/access/transam/xloginsert.c | 10 +- src/backend/catalog/gp_matview_aux.c | 12 +- src/backend/catalog/index.c | 2 +- src/backend/catalog/pg_compression.c | 3 - src/backend/catalog/system_views.sql | 4 + src/backend/cdb/cdbappendonlystorageread.c | 2 +- src/backend/cdb/cdbappendonlystoragewrite.c | 6 +- src/backend/cdb/cdbdtxcontextinfo.c | 2 +- src/backend/cdb/cdbdtxrecovery.c | 47 +- src/backend/cdb/cdbfts.c | 4 + src/backend/cdb/cdbgroupingpaths.c | 101 +- src/backend/cdb/cdbllize.c | 22 +- src/backend/cdb/cdbmutate.c | 18 +- src/backend/cdb/cdbpath.c | 13 +- src/backend/cdb/cdbpathlocus.c | 8 +- src/backend/cdb/cdbplan.c | 19 + src/backend/cdb/cdbpullup.c | 12 +- src/backend/cdb/cdbsetop.c | 3 +- src/backend/cdb/cdbtargeteddispatch.c | 1 + src/backend/cdb/cdbtm.c | 21 +- src/backend/cdb/cdbutil.c | 76 +- src/backend/cdb/cdbvars.c | 42 + src/backend/cdb/dispatcher/cdbdisp_query.c | 22 +- src/backend/cdb/dispatcher/cdbgang.c | 3 +- .../cdb/dispatcher/test/cdbdisp_query_test.c | 341 + src/backend/commands/analyze.c | 251 +- src/backend/commands/analyzefuncs.c | 24 +- src/backend/commands/analyzeutils.c | 59 +- src/backend/commands/cluster.c | 2 +- src/backend/commands/copy.c | 7 +- src/backend/commands/copyfrom.c | 26 +- src/backend/commands/createas.c | 15 +- src/backend/commands/dirtablecmds.c | 11 +- src/backend/commands/explain.c | 63 +- src/backend/commands/matview.c | 10 +- src/backend/commands/resgroupcmds.c | 48 +- src/backend/commands/tablecmds.c | 13 +- src/backend/commands/tablespace.c | 5 + src/backend/crypto/bufenc.c | 24 +- src/backend/executor/execMain.c | 27 +- src/backend/executor/execPartition.c | 14 +- src/backend/executor/nodeAgg.c | 172 +- src/backend/executor/nodeDynamicSeqscan.c | 9 + src/backend/executor/nodeHash.c | 36 +- src/backend/executor/nodeHashjoin.c | 28 +- src/backend/executor/nodeModifyTable.c | 240 +- src/backend/executor/nodeMotion.c | 3 +- src/backend/executor/nodeSeqscan.c | 32 +- src/backend/executor/nodeShareInputScan.c | 6 +- src/backend/fts/fts.c | 2 +- src/backend/gpopt/CGPOptimizer.cpp | 14 +- src/backend/gpopt/config/CConfigParamMapping.cpp | 36 +- src/backend/gpopt/gpdbwrappers.cpp | 459 +- .../gpopt/translate/CContextDXLToPlStmt.cpp | 86 +- .../gpopt/translate/CPartPruneStepsBuilder.cpp | 2 +- .../gpopt/translate/CTranslatorDXLToPlStmt.cpp | 672 +- .../gpopt/translate/CTranslatorQueryToDXL.cpp | 11 +- .../gpopt/translate/CTranslatorRelcacheToDXL.cpp | 63 +- .../gpopt/translate/CTranslatorScalarToDXL.cpp | 6 +- src/backend/gpopt/utils/COptTasks.cpp | 31 +- .../libgpdbcost/include/gpdbcost/CCostModelGPDB.h | 6 + .../gporca/libgpdbcost/src/CCostModelGPDB.cpp | 66 +- .../gporca/libgpopt/include/gpopt/base/CCTEInfo.h | 56 +- .../gporca/libgpopt/include/gpopt/base/CColRef.h | 7 + .../libgpopt/include/gpopt/base/CColRefSet.h | 4 + .../include/gpopt/base/CDistributionSpec.h | 3 + .../include/gpopt/base/CDistributionSpecHashed.h | 3 +- .../gporca/libgpopt/include/gpopt/base/CUtils.h | 4 +- .../libgpopt/include/gpopt/base/CWindowOids.h | 2 + .../gpopt/operators/CDedupSupersetPreprocessor.h | 126 + .../include/gpopt/operators/CLogicalCTEConsumer.h | 14 + .../include/gpopt/operators/CLogicalCTEProducer.h | 35 +- .../gpopt/operators/CLogicalDynamicGetBase.h | 5 - .../gpopt/operators/CLogicalDynamicIndexOnlyGet.h | 8 +- .../include/gpopt/operators/CLogicalGbAgg.h | 25 +- .../libgpopt/include/gpopt/operators/COperator.h | 1 + .../libgpopt/include/gpopt/operators/CPhysical.h | 5 + .../include/gpopt/operators/CPhysicalAgg.h | 5 +- .../include/gpopt/operators/CPhysicalCTEConsumer.h | 11 + .../include/gpopt/operators/CPhysicalCTEProducer.h | 22 +- .../gpopt/operators/CPhysicalDynamicTableScan.h | 3 + .../include/gpopt/operators/CPhysicalHashAgg.h | 2 +- .../gpopt/operators/CPhysicalHashAggDeduplicate.h | 1 + .../gpopt/operators/CPhysicalHashSequenceProject.h | 123 + .../include/gpopt/operators/CPhysicalScalarAgg.h | 3 +- .../gpopt/operators/CPhysicalSequenceProject.h | 2 +- .../include/gpopt/operators/CPhysicalStreamAgg.h | 4 +- .../operators/CPhysicalStreamAggDeduplicate.h | 1 + .../include/gpopt/translate/CTranslatorDXLToExpr.h | 14 +- .../gpopt/translate/CTranslatorDXLToExprUtils.h | 4 - .../include/gpopt/translate/CTranslatorExprToDXL.h | 32 +- .../gporca/libgpopt/include/gpopt/xforms/CXform.h | 2 + .../xforms/CXformImplementHashSequenceProject.h | 95 + .../gpopt/xforms/CXformPushPartialAggBelowJoin.h | 97 + .../libgpopt/include/gpopt/xforms/CXformSplitDQA.h | 3 +- .../libgpopt/include/gpopt/xforms/CXformUtils.h | 23 +- .../gporca/libgpopt/include/gpopt/xforms/xforms.h | 2 + src/backend/gporca/libgpopt/src/base/CCTEInfo.cpp | 91 +- src/backend/gporca/libgpopt/src/base/CColRef.cpp | 16 +- .../gporca/libgpopt/src/base/CColRefSet.cpp | 27 + .../gporca/libgpopt/src/base/CCostContext.cpp | 4 +- .../gporca/libgpopt/src/base/CDatumSortedSet.cpp | 8 +- .../libgpopt/src/base/CDistributionSpecHashed.cpp | 14 +- .../libgpopt/src/base/COptimizationContext.cpp | 2 +- .../gporca/libgpopt/src/base/CReqdPropPlan.cpp | 12 +- src/backend/gporca/libgpopt/src/base/CUtils.cpp | 54 +- .../gporca/libgpopt/src/base/CWindowOids.cpp | 7 + .../gporca/libgpopt/src/mdcache/CMDAccessor.cpp | 4 +- .../src/operators/CDedupSupersetPreprocessor.cpp | 551 ++ .../src/operators/CExpressionPreprocessor.cpp | 118 +- .../libgpopt/src/operators/CLogicalCTEConsumer.cpp | 76 +- .../libgpopt/src/operators/CLogicalCTEProducer.cpp | 35 +- .../libgpopt/src/operators/CLogicalDifference.cpp | 3 +- .../src/operators/CLogicalDynamicGetBase.cpp | 49 +- .../libgpopt/src/operators/CLogicalGbAgg.cpp | 33 +- .../src/operators/CLogicalGbAggDeduplicate.cpp | 3 +- .../libgpopt/src/operators/CLogicalIntersect.cpp | 3 +- .../src/operators/CLogicalSequenceProject.cpp | 2 + .../libgpopt/src/operators/CLogicalUnion.cpp | 3 +- .../src/operators/COrderedAggPreprocessor.cpp | 2 + .../gporca/libgpopt/src/operators/CPhysical.cpp | 63 +- .../gporca/libgpopt/src/operators/CPhysicalAgg.cpp | 65 +- .../src/operators/CPhysicalCTEConsumer.cpp | 23 +- .../src/operators/CPhysicalCTEProducer.cpp | 58 +- .../src/operators/CPhysicalDynamicTableScan.cpp | 15 + .../libgpopt/src/operators/CPhysicalHashAgg.cpp | 6 +- .../src/operators/CPhysicalHashAggDeduplicate.cpp | 5 +- .../src/operators/CPhysicalHashSequenceProject.cpp | 151 + .../libgpopt/src/operators/CPhysicalScalarAgg.cpp | 6 +- .../src/operators/CPhysicalSequenceProject.cpp | 5 +- .../libgpopt/src/operators/CPhysicalStreamAgg.cpp | 6 +- .../operators/CPhysicalStreamAggDeduplicate.cpp | 5 +- .../libgpopt/src/operators/CPhysicalTableScan.cpp | 5 +- src/backend/gporca/libgpopt/src/operators/Makefile | 4 +- src/backend/gporca/libgpopt/src/search/CGroup.cpp | 6 + .../libgpopt/src/search/CGroupExpression.cpp | 18 + .../src/translate/CTranslatorDXLToExpr.cpp | 263 +- .../src/translate/CTranslatorDXLToExprUtils.cpp | 31 - .../src/translate/CTranslatorExprToDXL.cpp | 613 +- .../xforms/CXformDynamicGet2DynamicTableScan.cpp | 6 + .../src/xforms/CXformExpandFullOuterJoin.cpp | 7 +- .../gporca/libgpopt/src/xforms/CXformFactory.cpp | 2 + .../libgpopt/src/xforms/CXformGbAgg2HashAgg.cpp | 1 + .../libgpopt/src/xforms/CXformGbAgg2ScalarAgg.cpp | 1 + .../libgpopt/src/xforms/CXformGbAgg2StreamAgg.cpp | 1 + .../src/xforms/CXformGbAggDedup2HashAggDedup.cpp | 1 + .../src/xforms/CXformGbAggDedup2StreamAggDedup.cpp | 1 + .../src/xforms/CXformGbAggWithMDQA2Join.cpp | 1 + .../src/xforms/CXformImplementCTEProducer.cpp | 2 +- .../xforms/CXformImplementHashSequenceProject.cpp | 112 + .../src/xforms/CXformInlineCTEConsumer.cpp | 1 + .../xforms/CXformInlineCTEConsumerUnderSelect.cpp | 1 + .../src/xforms/CXformPushPartialAggBelowJoin.cpp | 422 ++ .../libgpopt/src/xforms/CXformSimplifyGbAgg.cpp | 5 +- .../gporca/libgpopt/src/xforms/CXformSplitDQA.cpp | 4 +- .../libgpopt/src/xforms/CXformSplitGbAgg.cpp | 4 +- .../gporca/libgpopt/src/xforms/CXformUnnestTVF.cpp | 1 + .../gporca/libgpopt/src/xforms/CXformUtils.cpp | 9 +- src/backend/gporca/libgpopt/src/xforms/Makefile | 2 + .../libgpos/include/gpos/string/CWStringConst.h | 3 + .../dxl/operators/CDXLLogicalCTEProducer.h | 10 +- .../naucrates/dxl/operators/CDXLPhysicalAppend.h | 41 + .../dxl/operators/CDXLPhysicalCTEConsumer.h | 12 +- .../dxl/operators/CDXLPhysicalCTEProducer.h | 13 +- .../naucrates/dxl/operators/CDXLPhysicalWindow.h | 7 +- .../naucrates/dxl/parser/CParseHandlerColStats.h | 3 + .../dxl/parser/CParseHandlerStatsDerivedColumn.h | 3 + .../include/naucrates/dxl/xml/dxltokens.h | 5 + .../include/naucrates/md/CDXLColStats.h | 11 +- .../include/naucrates/md/CDXLStatsDerivedColumn.h | 12 +- .../include/naucrates/md/IMDColStats.h | 3 + .../naucrates/statistics/CGroupByStatsProcessor.h | 3 +- .../include/naucrates/statistics/CHistogram.h | 12 + .../naucrates/statistics/CStatisticsUtils.h | 12 +- .../include/naucrates/statistics/IStatistics.h | 6 + .../include/naucrates/traceflags/traceflags.h | 26 +- src/backend/gporca/libnaucrates/src/CDXLUtils.cpp | 4 +- .../gporca/libnaucrates/src/md/CDXLColStats.cpp | 12 +- .../libnaucrates/src/md/CDXLStatsDerivedColumn.cpp | 3 +- src/backend/gporca/libnaucrates/src/md/CMDName.cpp | 4 +- .../src/operators/CDXLLogicalCTEProducer.cpp | 4 +- .../src/operators/CDXLOperatorFactory.cpp | 15 +- .../src/operators/CDXLPhysicalAppend.cpp | 38 + .../src/operators/CDXLPhysicalCTEConsumer.cpp | 14 +- .../src/operators/CDXLPhysicalCTEProducer.cpp | 14 +- .../src/operators/CDXLPhysicalWindow.cpp | 20 +- .../src/parser/CParseHandlerAppend.cpp | 27 + .../src/parser/CParseHandlerColStats.cpp | 16 +- .../src/parser/CParseHandlerLogicalCTEProducer.cpp | 2 +- .../parser/CParseHandlerPhysicalCTEConsumer.cpp | 2 +- .../parser/CParseHandlerPhysicalCTEProducer.cpp | 7 +- .../src/parser/CParseHandlerPhysicalWindow.cpp | 2 +- .../src/parser/CParseHandlerStatsDerivedColumn.cpp | 13 +- .../src/statistics/CFilterStatsProcessor.cpp | 6 +- .../src/statistics/CGroupByStatsProcessor.cpp | 5 +- .../libnaucrates/src/statistics/CHistogram.cpp | 64 +- .../statistics/CLeftOuterJoinStatsProcessor.cpp | 3 +- .../src/statistics/CLeftSemiJoinStatsProcessor.cpp | 3 +- .../src/statistics/CProjectStatsProcessor.cpp | 3 +- .../src/statistics/CStatisticsUtils.cpp | 32 +- .../gporca/libnaucrates/src/xml/dxltokens.cpp | 8 +- src/backend/gporca/scripts/cal_bitmap_test.py | 2 +- .../gporca/scripts/get_debug_event_counters.py | 2 +- .../gpopt/operators/CExpressionPreprocessorTest.h | 2 +- .../server/src/unittest/gpopt/base/CGroupTest.cpp | 20 + .../src/unittest/gpopt/xforms/CXformTest.cpp | 1 + src/backend/nodes/copyfuncs.c | 43 +- src/backend/nodes/makefuncs.c | 1 + src/backend/nodes/outfast.c | 3 + src/backend/nodes/outfuncs.c | 32 +- src/backend/nodes/outfuncs_common.c | 1 + src/backend/nodes/print.c | 2 + src/backend/nodes/readfast.c | 4 + src/backend/nodes/readfuncs.c | 34 +- src/backend/optimizer/path/allpaths.c | 35 +- src/backend/optimizer/path/costsize.c | 4 +- src/backend/optimizer/path/pathkeys.c | 9 +- src/backend/optimizer/plan/aqumv.c | 123 +- src/backend/optimizer/plan/createplan.c | 4 +- src/backend/optimizer/plan/orca.c | 133 +- src/backend/optimizer/plan/planner.c | 117 +- src/backend/optimizer/plan/planshare.c | 4 + src/backend/optimizer/plan/setrefs.c | 15 + src/backend/optimizer/prep/prepagg.c | 26 +- src/backend/optimizer/prep/prepunion.c | 40 +- src/backend/optimizer/util/clauses.c | 30 +- src/backend/optimizer/util/pathnode.c | 19 +- src/backend/optimizer/util/walkers.c | 8 + src/backend/parser/analyze.c | 27 + src/backend/parser/gram.y | 8 +- src/backend/parser/parse_agg.c | 35 +- src/backend/parser/parse_func.c | 2 +- src/backend/parser/parse_utilcmd.c | 7 - src/backend/postmaster/postmaster.c | 11 +- src/backend/replication/logical/decode.c | 3 + src/backend/storage/file/fd.c | 1 + src/backend/storage/file/ufile.c | 12 +- src/backend/storage/ipc/procarray.c | 41 +- src/backend/storage/ipc/standby.c | 36 + src/backend/storage/lmgr/lock.c | 26 +- src/backend/storage/lmgr/lwlocknames.txt | 1 + src/backend/storage/lmgr/proc.c | 10 +- src/backend/storage/smgr/smgr.c | 12 +- src/backend/task/pg_cron.c | 2 +- src/backend/tcop/postgres.c | 17 + src/backend/tcop/pquery.c | 4 + src/backend/utils/adt/dbsize.c | 9 + src/backend/utils/adt/pg_upgrade_support.c | 14 + src/backend/utils/adt/ruleutils.c | 154 + src/backend/utils/datumstream/datumstream.c | 3 +- src/backend/utils/init/globals.c | 2 +- src/backend/utils/init/postinit.c | 8 +- src/backend/utils/misc/guc.c | 24 +- src/backend/utils/misc/guc_gp.c | 167 +- src/backend/utils/misc/postgresql.conf.sample | 2 +- src/backend/utils/misc/sampling.c | 8 +- src/backend/utils/mmgr/portalmem.c | 3 +- src/backend/utils/resgroup/cgroup-ops-dummy.c | 10 +- src/backend/utils/resgroup/cgroup-ops-linux-v1.c | 22 +- src/backend/utils/resgroup/cgroup-ops-linux-v2.c | 33 +- src/backend/utils/resgroup/cgroup.c | 76 +- src/backend/utils/resgroup/cgroup_io_limit.c | 100 +- src/backend/utils/resgroup/io_limit_gram.y | 92 +- src/backend/utils/resgroup/io_limit_scanner.l | 51 +- src/backend/utils/resgroup/resgroup.c | 96 + src/backend/utils/resource_manager/memquota.c | 1 + src/backend/utils/sort/tuplesort.c | 8 + src/backend/utils/time/snapmgr.c | 10 +- src/bin/gpfdist/README | 2 +- src/bin/gpfdist/gpfdist.c | 106 +- .../gpfdist/regress/input/gpfdist2_compress.source | 2 +- .../regress/output/gpfdist2_compress.source | 2 +- .../start_gpfdist_ssl_not_matching.bat | 2 +- .../start_gpfdist_with_ssl.bat | 2 +- src/bin/gpfts/failover/docker_master_check_back.sh | 1 + .../gpfts/failover/docker_segment_check_back.sh | 2 +- .../gpfts/failover/docker_standby_check_back.sh | 2 +- src/bin/gpfts/failover/master_check_back.sh | 1 + src/bin/gpfts/failover/segment_all_down.sh | 1 + src/bin/gpfts/failover/segment_check_back.sh | 1 + src/bin/gpfts/failover/standby_check_back.sh | 2 +- src/bin/initdb/initdb.c | 5 + src/bin/initdb/t/001_initdb.pl | 7 +- src/bin/pg_dump/common.c | 31 +- src/bin/pg_dump/meson.build | 105 + src/bin/pg_dump/pg_backup.h | 14 + src/bin/pg_dump/pg_backup_archiver.c | 110 +- src/bin/pg_dump/pg_backup_db.c | 27 + src/bin/pg_dump/pg_dump.c | 312 +- src/bin/pg_dump/pg_dump.h | 32 +- src/bin/pg_dump/pg_dump_sort.c | 6 - src/bin/pg_dump/pg_dumpall.c | 6 + src/bin/pg_dump/t/002_pg_dump.pl | 33 + src/bin/pg_dump/t/004_pg_dump_parallel.pl | 81 + src/bin/pg_resetwal/pg_resetwal.c | 3 + src/bin/pg_rewind/pg_rewind.c | 4 +- src/bin/pg_upgrade/check.c | 4 +- src/bin/pg_upgrade/controldata.c | 2 +- src/bin/pg_upgrade/exec.c | 11 +- src/bin/pg_upgrade/greenplum/check_gp.c | 8 + src/bin/pg_upgrade/info.c | 8 +- src/bin/pg_upgrade/pg_upgrade.c | 70 + src/bin/pg_upgrade/pg_upgrade.h | 14 + src/bin/pg_upgrade/server.c | 2 +- src/bin/pg_upgrade/tablespace.c | 5 +- src/bin/pg_upgrade/test_gpdb.sh | 6 +- src/bin/pg_upgrade/version.c | 8 +- src/bin/pgbench/pgbench.c | 14 +- src/bin/pgbench/t/001_pgbench_with_server.pl | 13 + src/bin/psql/describe.c | 4 +- src/bin/psql/help.c | 2 +- src/include/access/tableam.h | 76 +- src/include/access/transam.h | 2 +- src/include/access/xlog.h | 3 + src/include/catalog/pg_proc.dat | 4 + src/include/catalog/pg_statistic.h | 12 + src/include/cdb/cdbaocsam.h | 157 +- src/include/cdb/cdbappendonlyam.h | 50 +- src/include/cdb/cdbappendonlyblockdirectory.h | 63 +- src/include/cdb/cdbappendonlystoragelayer.h | 2 +- src/include/cdb/cdbdisp_query.h | 6 +- src/include/cdb/cdbinterconnect.h | 4 + src/include/cdb/cdbpullup.h | 2 +- src/include/cdb/cdbtm.h | 11 +- src/include/cdb/cdbutil.h | 1 + src/include/cdb/cdbvars.h | 17 + src/include/commands/analyzeutils.h | 4 + src/include/commands/vacuum.h | 13 +- src/include/executor/nodeAgg.h | 23 + src/include/executor/nodeSeqscan.h | 2 + src/include/gpopt/CGPOptimizer.h | 7 +- src/include/gpopt/config/CConfigParamMapping.h | 2 +- src/include/gpopt/gpdbwrappers.h | 165 +- src/include/gpopt/translate/CContextDXLToPlStmt.h | 64 +- .../gpopt/translate/CTranslatorDXLToPlStmt.h | 12 +- src/include/gpopt/utils/COptTasks.h | 12 +- src/include/lib/simplehash.h | 81 + src/include/nodes/execnodes.h | 9 +- src/include/nodes/nodes.h | 1 + src/include/nodes/pathnodes.h | 2 +- src/include/nodes/plannodes.h | 44 + src/include/optimizer/cost.h | 2 +- src/include/optimizer/orca.h | 3 +- .../include/optimizer/orcaopt.h | 21 +- src/include/optimizer/paths.h | 3 +- src/include/optimizer/planner.h | 8 +- src/include/optimizer/prep.h | 8 + src/include/pg_config.h.in | 95 +- src/include/pg_config.h.win32 | 3 - src/include/postgres.h | 26 +- src/include/storage/lock.h | 1 + src/include/storage/smgr.h | 5 +- src/include/storage/standbydefs.h | 1 + src/include/storage/ufile.h | 4 +- src/include/utils/cgroup.h | 15 +- src/include/utils/cgroup_io_limit.h | 12 +- src/include/utils/datumstream.h | 4 +- src/include/utils/guc.h | 15 + src/include/utils/portal.h | 3 + .../utils/process_shared_preload_libraries.h | 3 + src/include/utils/resgroup.h | 2 + src/include/utils/sampling.h | 2 +- src/include/utils/sync_guc_name.h | 11 +- src/include/utils/unsync_guc_name.h | 18 +- src/interfaces/libpq/fe-secure-gssapi.c | 2 + src/test/binary_swap/test_binary_swap.sh | 2 +- src/test/isolation2/Makefile | 3 + src/test/isolation2/expected/ao_blkdir.out | 318 + src/test/isolation2/expected/hot_standby/basic.out | 242 + .../isolation2/expected/hot_standby/faults.out | 327 + src/test/isolation2/expected/hot_standby/setup.out | 14 + .../isolation2/expected/hot_standby/teardown.out | 9 + .../expected/hot_standby/transaction_isolation.out | 984 +++ .../resgroup/resgroup_auxiliary_tools_v2.out | 43 +- .../expected/segwalrep/select_throttle.out | 12 +- .../segwalrep/startup_rename_prepared_xlog.out | 173 + src/test/isolation2/hot_standby_schedule | 6 + .../input/hot_standby/query_conflict.source | 225 + .../input/resgroup/resgroup_io_limit.source | 30 +- src/test/isolation2/input/uao/fast_analyze.source | 349 + src/test/isolation2/isolation2_schedule | 9 +- .../output/hot_standby/query_conflict.source | 470 ++ .../output/resgroup/resgroup_io_limit.source | 75 +- src/test/isolation2/output/uao/fast_analyze.source | 632 ++ src/test/isolation2/sql/.gitignore | 1 + src/test/isolation2/sql/ao_blkdir.sql | 151 + src/test/isolation2/sql/hot_standby/basic.sql | 95 + src/test/isolation2/sql/hot_standby/faults.sql | 126 + src/test/isolation2/sql/hot_standby/setup.sql | 9 + src/test/isolation2/sql/hot_standby/teardown.sql | 5 + .../sql/hot_standby/transaction_isolation.sql | 319 + .../sql/resgroup/resgroup_auxiliary_tools_v2.sql | 58 +- .../sql/segwalrep/startup_rename_prepared_xlog.sql | 89 + src/test/modules/delay_execution/delay_execution.c | 6 +- src/test/modules/test_shm_mq/worker.c | 2 +- src/test/perl/PostgresNode.pm | 44 + .../t/101_restore_point_and_startup_pause.pl | 140 +- src/test/regress/GNUmakefile | 12 + src/test/regress/expected/AOCO_Compression.out | 48 + .../regress/expected/DML_over_joins_optimizer.out | 29 +- src/test/regress/expected/agg_pushdown.out | 373 +- .../regress/expected/agg_pushdown_optimizer.out | 1116 +++ src/test/regress/expected/aggregates.out | 217 +- src/test/regress/expected/aggregates_optimizer.out | 221 + src/test/regress/expected/aqumv.out | 471 ++ src/test/regress/expected/bfv_aggregate.out | 6 +- src/test/regress/expected/bfv_joins.out | 42 + src/test/regress/expected/bfv_joins_optimizer.out | 82 +- src/test/regress/expected/bfv_partition.out | 222 +- src/test/regress/expected/bfv_planner.out | 2 + .../regress/expected/bfv_planner_optimizer.out | 2 + src/test/regress/expected/cbdb_parallel.out | 522 +- src/test/regress/expected/cluster.out | 6 +- src/test/regress/expected/column_compression.out | 30 +- src/test/regress/expected/create_index.out | 1 - .../regress/expected/create_index_optimizer.out | 1 - src/test/regress/expected/create_table_distpol.out | 2 - src/test/regress/expected/cte_prune.out | 1775 +++++ src/test/regress/expected/cte_prune_optimizer.out | 1854 +++++ src/test/regress/expected/dedupset.out | 1936 +++++ src/test/regress/expected/dedupset_optimizer.out | 1614 +++++ src/test/regress/expected/direct_dispatch.out | 2 +- src/test/regress/expected/eagerfree.out | 8 +- src/test/regress/expected/enum.out | 170 +- src/test/regress/expected/enum_dist_part_ban.out | 24 - src/test/regress/expected/explain_format.out | 56 +- .../regress/expected/explain_format_optimizer.out | 54 +- src/test/regress/expected/gin.out | 9 + src/test/regress/expected/gin_optimizer.out | 9 + src/test/regress/expected/gp_aggregates_costs.out | 6 +- src/test/regress/expected/gp_create_table.out | 5 + src/test/regress/expected/gp_distinct_plans.out | 2 +- src/test/regress/expected/gp_dqa.out | 48 +- src/test/regress/expected/gp_dqa_optimizer.out | 248 +- src/test/regress/expected/gp_hashagg.out | 174 +- src/test/regress/expected/gp_runtime_filter.out | 54 + src/test/regress/expected/gpctas.out | 6 +- .../regress/expected/gpdist_legacy_opclasses.out | 27 +- .../expected/gpdist_legacy_opclasses_optimizer.out | 28 +- src/test/regress/expected/gporca.out | 147 +- src/test/regress/expected/gporca_faults.out | 25 + .../regress/expected/gporca_faults_optimizer.out | 21 + src/test/regress/expected/gporca_optimizer.out | 164 +- src/test/regress/expected/gpsd.out | 16 +- src/test/regress/expected/groupingsets.out | 2 + .../regress/expected/groupingsets_optimizer.out | 16 +- .../hs_primary_setup.out} | 6 - src/test/regress/expected/hs_standby_allowed.out | 24 +- .../regress/expected/hs_standby_disallowed.out | 32 +- src/test/regress/expected/hs_standby_functions.out | 15 +- .../expected/icudp/gp_interconnect_fc_method.out | 46 + .../icudp/queue_depth_combination_capacity.out | 257 + ...ut => queue_depth_combination_loss_advance.out} | 14 +- src/test/regress/expected/incremental_analyze.out | 2 +- src/test/regress/expected/incremental_sort.out | 4 +- .../expected/incremental_sort_optimizer.out | 4 +- src/test/regress/expected/indexjoin.out | 2 +- src/test/regress/expected/jsonb.out | 7 + src/test/regress/expected/jsonb_optimizer.out | 7 + src/test/regress/expected/limit_gp.out | 4 +- src/test/regress/expected/limit_optimizer.out | 33 +- src/test/regress/expected/matview_data.out | 44 +- src/test/regress/expected/minirepro.out | 16 +- .../regress/expected/misc_functions_optimizer.out | 54 +- src/test/regress/expected/olap_plans.out | 6 +- src/test/regress/expected/olap_plans_optimizer.out | 134 +- src/test/regress/expected/partition.out | 62 +- src/test/regress/expected/partition_aggregate.out | 6 +- ...artition_optimizer.out => partition_append.out} | 674 +- .../regress/expected/partition_append_setup.out | 5 + .../regress/expected/partition_append_teardown.out | 3 + src/test/regress/expected/partition_join.out | 97 +- src/test/regress/expected/partition_optimizer.out | 62 +- src/test/regress/expected/partition_prune.out | 4 +- ...ne_optimizer.out => partition_prune_append.out} | 1407 ++-- .../expected/partition_prune_opfamily_append.out | 393 + .../regress/expected/partition_prune_optimizer.out | 4 +- .../regress/expected/partition_pruning_append.out | 3879 ++++++++++ src/test/regress/expected/psql.out | 7 + src/test/regress/expected/qp_misc_jiras.out | 2 +- src/test/regress/expected/qp_with_clause.out | 2 +- .../regress/expected/qp_with_clause_optimizer.out | 2 +- src/test/regress/expected/query_finish_pending.out | 14 +- src/test/regress/expected/rowhints_optimizer.out | 22 +- src/test/regress/expected/select_distinct.out | 2 +- src/test/regress/expected/select_parallel.out | 18 +- src/test/regress/expected/shared_scan.out | 4 +- .../regress/expected/shared_scan_optimizer.out | 6 +- .../expected/statement_mem_for_windowagg.out | 2 + src/test/regress/expected/stats_ext.out | 13 + src/test/regress/expected/stats_ext_optimizer.out | 13 + src/test/regress/expected/subselect.out | 2 +- .../regress/expected/subselect_gp_optimizer.out | 140 +- src/test/regress/expected/toast.out | 2 +- src/test/regress/expected/tpcds_q04.out | 5531 ++++++++++++++ src/test/regress/expected/tpcds_q04_optimizer.out | 5557 ++++++++++++++ src/test/regress/expected/union_gp.out | 32 + src/test/regress/expected/union_gp_optimizer.out | 36 + src/test/regress/expected/vacuum_gp.out | 28 + src/test/regress/expected/window.out | 310 +- src/test/regress/expected/window_optimizer.out | 698 +- src/test/regress/expected/window_parallel.out | 1046 +++ src/test/regress/expected/with.out | 98 + src/test/regress/expected/with_clause.out | 50 + .../regress/expected/with_clause_optimizer.out | 50 + src/test/regress/expected/with_optimizer.out | 98 + src/test/regress/expected/write_parallel.out | 8 +- src/test/regress/greenplum_schedule | 28 +- src/test/regress/hooktest/hook_test.c | 8 +- src/test/regress/icudp_schedule | 2 +- src/test/regress/input/external_table.source | 17 +- src/test/regress/input/temp_tablespaces.source | 2 +- src/test/regress/mem_quota_util.py | 2 +- src/test/regress/output/external_table.source | 30 +- .../regress/output/external_table_optimizer.source | 30 +- src/test/regress/output/temp_tablespaces.source | 2 +- src/test/regress/parallel_schedule | 7 +- src/test/regress/pg_regress.c | 13 +- src/test/regress/sql/AOCO_Compression.sql | 9 +- src/test/regress/sql/agg_pushdown.sql | 57 +- src/test/regress/sql/aggregates.sql | 104 + src/test/regress/sql/aqumv.sql | 100 + src/test/regress/sql/bfv_joins.sql | 39 + src/test/regress/sql/bfv_partition.sql | 60 +- src/test/regress/sql/bfv_planner.sql | 3 + src/test/regress/sql/cbdb_parallel.sql | 165 +- src/test/regress/sql/cluster.sql | 6 +- src/test/regress/sql/column_compression.sql | 10 +- src/test/regress/sql/create_index.sql | 1 - src/test/regress/sql/cte_prune.sql | 468 ++ src/test/regress/sql/dedupset.sql | 174 + src/test/regress/sql/enum.sql | 22 +- src/test/regress/sql/enum_dist_part_ban.sql | 22 - src/test/regress/sql/explain_format.sql | 37 +- src/test/regress/sql/gin.sql | 10 + src/test/regress/sql/gp_create_table.sql | 4 + src/test/regress/sql/gp_dqa.sql | 11 +- src/test/regress/sql/gp_hashagg.sql | 138 + src/test/regress/sql/gp_runtime_filter.sql | 29 + src/test/regress/sql/gpdist_legacy_opclasses.sql | 8 +- src/test/regress/sql/gporca.sql | 19 + src/test/regress/sql/gporca_faults.sql | 12 + src/test/regress/sql/groupingsets.sql | 2 + src/test/regress/sql/hs_primary_setup.sql | 7 + src/test/regress/sql/hs_standby_allowed.sql | 7 +- src/test/regress/sql/hs_standby_disallowed.sql | 8 + src/test/regress/sql/hs_standby_functions.sql | 4 +- .../sql/icudp/gp_interconnect_fc_method.sql | 8 + .../sql/icudp/queue_depth_combination_capacity.sql | 55 + ...ql => queue_depth_combination_loss_advance.sql} | 11 +- src/test/regress/sql/incremental_sort.sql | 4 +- src/test/regress/sql/jsonb.sql | 3 + src/test/regress/sql/matview_data.sql | 14 + src/test/regress/sql/misc_jiras.sql | 2 + src/test/regress/sql/partition.sql | 14 +- .../sql/{partition.sql => partition_append.sql} | 286 +- src/test/regress/sql/partition_append_setup.sql | 5 + src/test/regress/sql/partition_append_teardown.sql | 3 + src/test/regress/sql/partition_join.sql | 40 + src/test/regress/sql/partition_prune.sql | 2 +- ...tition_prune.sql => partition_prune_append.sql} | 99 +- .../sql/partition_prune_opfamily_append.sql | 351 + src/test/regress/sql/partition_pruning_append.sql | 1053 +++ src/test/regress/sql/psql.sql | 1 + src/test/regress/sql/qp_with_clause.sql | 2 +- src/test/regress/sql/query_finish_pending.sql | 14 +- src/test/regress/sql/select_parallel.sql | 1 + .../regress/sql/statement_mem_for_windowagg.sql | 2 + src/test/regress/sql/stats_ext.sql | 12 + src/test/regress/sql/tpcds_q04.sql | 5591 ++++++++++++++ src/test/regress/sql/union_gp.sql | 12 + src/test/regress/sql/vacuum_gp.sql | 17 +- src/test/regress/sql/window.sql | 32 +- src/test/regress/sql/window_parallel.sql | 269 + src/test/regress/sql/with.sql | 68 + src/test/regress/sql/with_clause.sql | 29 + .../singlenode_regress/expected/groupingsets.out | 9 +- .../singlenode_regress/expected/matview_data.out | 2 +- .../singlenode_regress/expected/qp_with_clause.out | 2 +- .../expected/query_finish_pending.out | 14 +- .../expected/workfile/hashagg_spill.out | 2 + src/test/singlenode_regress/sql/qp_with_clause.sql | 2 +- .../sql/query_finish_pending.sql | 14 +- .../sql/workfile/hashagg_spill.sql | 2 + src/test/unit/mock/gpopt_mock.c | 3 +- src/tools/hooks/install | 6 - src/tools/hooks/pre-push | 47 - 1053 files changed, 88428 insertions(+), 8380 deletions(-) --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
