diff --git a/.github/workflows/yezzey-ci.yaml b/.github/workflows/yezzey-ci.yaml new file mode 100644 index 00000000000..1d4402b0ad1 --- /dev/null +++ b/.github/workflows/yezzey-ci.yaml @@ -0,0 +1,334 @@ +# -------------------------------------------------------------------- +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed +# with this work for additional information regarding copyright +# ownership. The ASF licenses this file to You under the Apache +# License, Version 2.0 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of the +# License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. See the License for the specific language governing +# permissions and limitations under the License. +# +# -------------------------------------------------------------------- +# Yezzey CI Workflow +# -------------------------------------------------------------------- +name: Yezzey CI Pipeline + +on: + push: + branches: [ main ] + pull_request: + types: [opened, synchronize, reopened, edited] + workflow_dispatch: + +permissions: + contents: read + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} + +env: + CLOUDBERRY_HOME: "/usr/local/cloudberry-db" + CLOUDBERRY_VERSION: "main" + +jobs: + + ## Stage 1: Build artifacts and run tests for cloudberry + + test-cloudberry: + name: Build and Test Yezzey Cloudberry + runs-on: ubuntu-latest + container: + image: apache/incubator-cloudberry:cbdb-build-ubuntu22.04-latest + options: >- + --user root + -h cdw + -v /usr/share:/host_usr_share + -v /usr/local:/host_usr_local + -v /opt:/host_opt + + services: + # Define the MinIO service container + minio: + image: lazybit/minio # Use a specific MinIO image tag + ports: + - 9000:9000 # Expose MinIO's API port (9000) + - 9001:9001 # Expose MinIO's console port (optional, for web UI) + env: + # MinIO root credentials (required for admin access) + MINIO_ROOT_USER: some_key + MINIO_ROOT_PASSWORD: some_key + # Healthcheck to ensure MinIO is ready before the job proceeds + options: >- + --name minio + --health-cmd "curl --fail http://localhost:9000/minio/health/live" + --health-interval 10s + --health-timeout 5s + --health-retries 5 + volumes: + - ${{ github.workspace }}/data:/data + + steps: + - name: Checkout Cloudberry source + uses: actions/checkout@v4 + with: + path: cloudberry + submodules: true + + - name: Checkout Yproxy source + uses: actions/checkout@v4 + with: + repository: open-gpdb/yproxy + ref: master + path: yproxy + + - name: Cloudberry Environment Initialization + shell: bash + env: + LOGS_DIR: build-logs + SRC_DIR: ${{ github.workspace }}/cloudberry + run: | + set -eo pipefail + if ! su - gpadmin -c "/tmp/init_system.sh"; then + echo "::error::Container initialization failed" + exit 1 + fi + + mkdir -p "${SRC_DIR}/build-logs" + chown -R gpadmin:gpadmin "${SRC_DIR}/build-logs" + mkdir -p "${LOGS_DIR}/details" + chown -R gpadmin:gpadmin . + chmod -R 755 . + chmod 777 "${LOGS_DIR}" + + df -kh / + rm -rf /__t/* + df -kh / + + df -h | tee -a "${LOGS_DIR}/details/disk-usage.log" + free -h | tee -a "${LOGS_DIR}/details/memory-usage.log" + + { + echo "=== Environment Information ===" + uname -a + df -h + free -h + env + } | tee -a "${LOGS_DIR}/details/environment.log" + + echo "SRC_DIR=${GITHUB_WORKSPACE}" | tee -a "$GITHUB_ENV" + + - name: Install MinIO Client (mc) + run: | + set -ex pipefail + # Download mc for Linux (amd64) + curl -fsSL -o mc https://dl.min.io/client/mc/release/linux-amd64/mc + chmod +x mc + sudo mv mc /usr/local/bin/mc # Make mc available system-wide + + - name: Configure MinIO service + run: | + set -ex pipefail + # Add the MinIO service as an "alias" in mc (name it "minio-ci") + mc alias set minio-ci http://minio:9000 some_key some_key + + # Verify the connection + mc admin info minio-ci + + # Create buckets + mc mb minio-ci/gpyezzey + mc mb minio-ci/gpyezzey2 + mc mb minio-ci/gpyezzey3 + + - name: Run Apache Cloudberry configure script + shell: bash + env: + SRC_DIR: ${{ github.workspace }}/cloudberry + run: | + set -eo pipefail + chmod +x "${SRC_DIR}"/devops/build/automation/cloudberry/scripts/configure-cloudberry.sh + if ! time su - gpadmin -c "cd ${SRC_DIR} && SRC_DIR=${SRC_DIR} ENABLE_DEBUG=${{ env.ENABLE_DEBUG }} CONFIGURE_EXTRA_OPTS=${{ env.CONFIGURE_EXTRA_OPTS }} ${SRC_DIR}/devops/build/automation/cloudberry/scripts/configure-cloudberry.sh"; then + echo "::error::Configure script failed" + exit 1 + fi + + - name: Run Apache Cloudberry build script + shell: bash + env: + SRC_DIR: ${{ github.workspace }}/cloudberry + run: | + set -eo pipefail + + chmod +x "${SRC_DIR}"/devops/build/automation/cloudberry/scripts/build-cloudberry.sh + if ! time su - gpadmin -c "cd ${SRC_DIR} && SRC_DIR=${SRC_DIR} ${SRC_DIR}/devops/build/automation/cloudberry/scripts/build-cloudberry.sh"; then + echo "::error::Build script failed" + exit 1 + fi + + - name: Run Yezzey build script + shell: bash + env: + SRC_DIR: ${{ github.workspace }}/cloudberry + run: | + set -eo pipefail + + if ! time su - gpadmin -c "cd ${SRC_DIR}/gpcontrib/yezzey && make && make install"; then + echo "::error::Build yezzey failed" + exit 1 + fi + + - name: Deploy yezzey config + shell: bash + env: + SRC_DIR: ${{ github.workspace }}/cloudberry + run: | + set -eo pipefail + + chmod +x "${SRC_DIR}"/gpcontrib/yezzey/devops/scripts/prepare_test_yezzey.sh + if ! time su - gpadmin -c "cd ${SRC_DIR}/gpcontrib/yezzey && devops/scripts/prepare_test_yezzey.sh"; then + echo "::error::Config yezzey failed" + exit 1 + fi + + - name: Install yproxy + shell: bash + env: + SRC_DIR: ${{ github.workspace }}/yproxy + run: | + set -eo pipefail + + # Install latest Go compiler + sudo apt update + sudo apt install -y software-properties-common + sudo add-apt-repository ppa:longsleep/golang-backports + sudo apt update + sudo apt install -y golang-go + + # Install lib dependencies + + sudo apt install -y libbrotli-dev liblzo2-dev libsodium-dev curl cmake + + # Fetch project and build + git config --global --add safe.directory ${SRC_DIR} + cd ${SRC_DIR} + make build + + mv devbin/yproxy /usr/bin/yproxy + + #Check the installation + yproxy --version + + - name: Create demo cluster with yezzey + shell: bash + env: + SRC_DIR: ${{ github.workspace }}/cloudberry + run: | + set -eo pipefail + + if ! time su - gpadmin -c "cd ${SRC_DIR} && gpcontrib/yezzey/devops/scripts/create_demo_yezzey_cloudberry.sh"; then + echo "::error::Create cluster with yezzey failed" + exit 1 + fi + + - name: Run tests + shell: bash + env: + SRC_DIR: ${{ github.workspace }}/cloudberry + run: | + set -eo pipefail + set -x + + chmod +x "${SRC_DIR}"/gpcontrib/yezzey/devops/scripts/launch_yproxy.sh + if ! time su - gpadmin -c "cd ${SRC_DIR} && gpcontrib/yezzey/devops/scripts/launch_yproxy.sh && cd ${SRC_DIR}/gpcontrib/yezzey && source /usr/local/cloudberry-db/cloudberry-env.sh && source ../../gpAux/gpdemo/gpdemo-env.sh && IS_CLOUDBERRY=true make installcheck"; then + echo "::error::Test yezzey failed" + cat ${SRC_DIR}/gpcontrib/yezzey/regression.diffs + exit 1 + fi + + - name: Upload test logs + uses: actions/upload-artifact@v4 + with: + name: test-logs-cloudberry-${{ needs.build.outputs.build_timestamp }} + path: | + build-logs/ + retention-days: 7 + + - name: Upload test results files + uses: actions/upload-artifact@v4 + with: + name: results-cloudberry-${{ needs.build.outputs.build_timestamp }} + path: | + **/regression.out + **/regression.diffs + **/results/ + retention-days: 7 + + - name: Upload test regression logs + if: failure() || cancelled() + uses: actions/upload-artifact@v4 + with: + name: regression-logs-cloudberry-${{ needs.build.outputs.build_timestamp }} + path: | + **/regression.out + **/regression.diffs + **/results/ + **/yproxy.log + cloudberry/gpAux/gpdemo/datadirs/standby/log/ + cloudberry/gpAux/gpdemo/datadirs/qddir/demoDataDir-1/log/ + cloudberry/gpAux/gpdemo/datadirs/dbfast1/demoDataDir0/log/ + cloudberry/gpAux/gpdemo/datadirs/dbfast2/demoDataDir1/log/ + cloudberry/gpAux/gpdemo/datadirs/dbfast3/demoDataDir2/log/ + cloudberry/gpAux/gpdemo/datadirs/dbfast_mirror1/demoDataDir0/log/ + cloudberry/gpAux/gpdemo/datadirs/dbfast_mirror2/demoDataDir1/log/ + cloudberry/gpAux/gpdemo/datadirs/dbfast_mirror3/demoDataDir2/log/ + retention-days: 7 + + ## ====================================================================== + ## Job: report + ## ====================================================================== + + report: + name: Generate Apache Cloudberry Build Report + needs: [test-cloudberry] + if: always() + runs-on: ubuntu-22.04 + steps: + - name: Generate Final Report + run: | + { + echo "# Yezzey Test Pipeline Report" + + echo "## Job Status" + echo "- Cloudberry Job: ${{ needs.test-cloudberry.result }}" + echo "- Completion Time: $(date -u +'%Y-%m-%d %H:%M:%S UTC')" + + if [[ "${{ needs.test-cloudberry.result }}" == "success" ]]; then + echo "✅ Pipeline completed successfully" + else + echo "⚠️ Pipeline completed with failures" + + if [[ "${{ needs.test-cloudberry.result }}" != "success" ]]; then + echo "### Cloudberry Test Failure" + echo "Check build logs for details" + fi + + fi + } >> "$GITHUB_STEP_SUMMARY" + + - name: Notify on failure + if: | + (needs.test-cloudberry.result != 'success') + run: | + echo "::error::Build/Test pipeline failed! Check job summaries and logs for details" + echo "Timestamp: $(date -u +'%Y-%m-%d %H:%M:%S UTC')" + echo "Cloudberry Result: ${{ needs.test-cloudberry.result }}" + + diff --git a/.gitmodules b/.gitmodules index a7b61644ee2..f900edb6807 100644 --- a/.gitmodules +++ b/.gitmodules @@ -15,3 +15,6 @@ path = dependency/yyjson url = https://github.com/ibireme/yyjson.git +[submodule "gpcontrib/yezzey"] + path = gpcontrib/yezzey + url = https://github.com/open-gpdb/yezzey.git diff --git a/LICENSE b/LICENSE index 0ccd7072122..5e3c7008094 100644 --- a/LICENSE +++ b/LICENSE @@ -338,6 +338,12 @@ Apache Cloudberry includes codes from see licenses/LICENSE-citusdata.txt +---------------------------- + PostgreSQL License + + gpcontrib/yezzey/* + see licenses/LICENSE-yezzey.txt + ---------------------------- Apache License - Version 2.0 diff --git a/configure b/configure index 04e1a1ff94d..fc688f858a8 100755 --- a/configure +++ b/configure @@ -721,6 +721,7 @@ GREP with_apr_config with_libcurl with_rt +with_yezzey PROTOC with_gp_stats_collector with_diskquota @@ -947,6 +948,7 @@ with_libbz2 with_zstd with_diskquota with_gp_stats_collector +with_yezzey with_rt with_libcurl with_apr_config @@ -1699,6 +1701,7 @@ Optional Packages: --with-diskquota build with diskquota extension --with-gp_stats_collector build with stats collector extension + --with-yezzey build with Yezzey extension --without-rt do not use Realtime Library --without-libcurl do not use libcurl --with-apr-config=PATH path to apr-1-config utility @@ -11337,6 +11340,35 @@ $as_echo "yes" >&6; } fi fi +# +# yezzey +# + + + +# Check whether --with-yezzey was given. +if test "${with_yezzey+set}" = set; then : + withval=$with_yezzey; + case $withval in + yes) + : + ;; + no) + : + ;; + *) + as_fn_error $? "no argument expected for --with-yezzey option" "$LINENO" 5 + ;; + esac + +else + with_yezzey=no + +fi + + + + # # Realtime library # @@ -18912,7 +18944,7 @@ else We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) +#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; @@ -18958,7 +18990,7 @@ else We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) +#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; @@ -18982,7 +19014,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) +#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; @@ -19027,7 +19059,7 @@ else We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) +#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; @@ -19051,7 +19083,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) +#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; diff --git a/configure.ac b/configure.ac index 177fa461708..2e9019ff02b 100644 --- a/configure.ac +++ b/configure.ac @@ -1395,6 +1395,13 @@ if test "$with_zstd" = yes; then PKG_CHECK_MODULES([ZSTD], [libzstd >= 1.4.0]) fi +# +# yezzey +# +PGAC_ARG_BOOL(with, yezzey, no, + [build with Yezzey extension]) +AC_SUBST(with_yezzey) + # # Realtime library # diff --git a/devops/build/automation/cloudberry/scripts/configure-cloudberry.sh b/devops/build/automation/cloudberry/scripts/configure-cloudberry.sh index cc9e7376239..40b7a192f85 100755 --- a/devops/build/automation/cloudberry/scripts/configure-cloudberry.sh +++ b/devops/build/automation/cloudberry/scripts/configure-cloudberry.sh @@ -178,6 +178,7 @@ execute_cmd ./configure --prefix=${BUILD_DESTINATION} \ --with-openssl \ --with-uuid=e2fs \ ${CONFIGURE_MDBLOCALES_OPTS} \ + ${CONFIGURE_EXTRA_OPTS:-} \ --with-includes=/usr/local/xerces-c/include \ --with-libraries=${BUILD_DESTINATION}/lib || exit 4 log_section_end "Configure" diff --git a/gpcontrib/Makefile b/gpcontrib/Makefile index 2969194cfac..72dba40551f 100644 --- a/gpcontrib/Makefile +++ b/gpcontrib/Makefile @@ -40,6 +40,9 @@ endif ifeq "$(with_gp_stats_collector)" "yes" recurse_targets += gp_stats_collector endif +ifeq "$(with_yezzey)" "yes" + recurse_targets += yezzey +endif ifeq "$(with_zstd)" "yes" recurse_targets += zstd endif diff --git a/gpcontrib/yezzey b/gpcontrib/yezzey new file mode 160000 index 00000000000..0d88f66a5fd --- /dev/null +++ b/gpcontrib/yezzey @@ -0,0 +1 @@ +Subproject commit 0d88f66a5fd0dba82681eef5929529cb153cb325 diff --git a/licenses/LICENSE-yezzey.txt b/licenses/LICENSE-yezzey.txt new file mode 100644 index 00000000000..aa980b429c1 --- /dev/null +++ b/licenses/LICENSE-yezzey.txt @@ -0,0 +1,19 @@ +Copyright (c) 2022, PostgreSQL Global Development Group + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose, without fee, and without a written agreement +is hereby granted, provided that the above copyright notice and this +paragraph and the following two paragraphs appear in all copies. + +IN NO EVENT SHALL POSTGRESQL GLOBAL DEVELOPMENT GROUP BE LIABLE TO ANY +PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, +INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS +DOCUMENTATION, EVEN IF POSTGRESQL GLOBAL DEVELOPMENT GROUP HAS BEEN +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +POSTGRESQL GLOBAL DEVELOPMENT GROUP SPECIFICALLY DISCLAIMS ANY WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND POSTGRESQL GLOBAL DEVELOPMENT GROUP HAS NO +OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +MODIFICATIONS. diff --git a/pom.xml b/pom.xml index 633b07afe8e..76f23d4a775 100644 --- a/pom.xml +++ b/pom.xml @@ -1276,6 +1276,218 @@ code or new licensing patterns. gpcontrib/gp_stats_collector/.clang-format gpcontrib/gp_stats_collector/Makefile + + gpcontrib/yezzey/.github/workflows/yezzey-ci.yaml + gpcontrib/yezzey/devops/build/docker/minio/docker-compose.yaml + gpcontrib/yezzey/devops/build/docker/minio/README + gpcontrib/yezzey/devops/config/priv.gpg + gpcontrib/yezzey/devops/config/pub.gpg + gpcontrib/yezzey/devops/config/yproxy.conf + gpcontrib/yezzey/devops/packaging/debian/compat + gpcontrib/yezzey/devops/packaging/debian/control + gpcontrib/yezzey/devops/packaging/debian/control.in + gpcontrib/yezzey/devops/packaging/debian/pgversions + gpcontrib/yezzey/devops/packaging/debian/rules + gpcontrib/yezzey/devops/packaging/debian/source/format + gpcontrib/yezzey/devops/packaging/debian/source/lintian-overrides + gpcontrib/yezzey/devops/scripts/boot.sh + gpcontrib/yezzey/devops/scripts/conf_setup.sh + gpcontrib/yezzey/devops/scripts/create_demo_yezzey_cloudberry.sh + gpcontrib/yezzey/devops/scripts/create_demo_yezzey_gpdb.sh + gpcontrib/yezzey/devops/scripts/launch_yproxy.sh + gpcontrib/yezzey/devops/scripts/prepare_test_yezzey.sh + gpcontrib/yezzey/docs/README.cleanup.md + gpcontrib/yezzey/docs/yezzey_vacuum.md + gpcontrib/yezzey/example_with_backup.md + gpcontrib/yezzey/expected/drop-column_cbdb.out + gpcontrib/yezzey/expected/drop-column.out + gpcontrib/yezzey/expected/load_offload_load_cbdb.out + gpcontrib/yezzey/expected/load_offload_load.out + gpcontrib/yezzey/expected/simple_cbdb.out + gpcontrib/yezzey/expected/simple.out + gpcontrib/yezzey/expected/versions.out + gpcontrib/yezzey/expected/yezzey_feat_cbdb_last.out + gpcontrib/yezzey/expected/yezzey_feat_cbdb.out + gpcontrib/yezzey/expected/yezzey-alter_cbdb.out + gpcontrib/yezzey/expected/yezzey-alter-toast_cbdb.out + gpcontrib/yezzey/expected/yezzey-alter-toast.out + gpcontrib/yezzey/expected/yezzey-alter-ts_cbdb.out + gpcontrib/yezzey/expected/yezzey-alter-ts.out + gpcontrib/yezzey/expected/yezzey-alter.out + gpcontrib/yezzey/expected/yezzey-create-offloaded_cbdb.out + gpcontrib/yezzey/expected/yezzey-create-offloaded.out + gpcontrib/yezzey/expected/yezzey-expand_cbdb.out + gpcontrib/yezzey/expected/yezzey-expand.out + gpcontrib/yezzey/expected/yezzey-otm-deletion_cbdb.out + gpcontrib/yezzey/expected/yezzey-otm-deletion.out + gpcontrib/yezzey/expected/yezzey-otm-feat_cbdb.out + gpcontrib/yezzey/expected/yezzey-otm-feat.out + gpcontrib/yezzey/expected/yezzey-reorg_cbdb.out + gpcontrib/yezzey/expected/yezzey-reorg.out + gpcontrib/yezzey/expected/yezzey-stat_cbdb.out + gpcontrib/yezzey/expected/yezzey-stat.out + gpcontrib/yezzey/expected/yezzey-trunc_cbdb.out + gpcontrib/yezzey/expected/yezzey-trunc.out + gpcontrib/yezzey/expected/yezzey-vac-relation_cbdb.out + gpcontrib/yezzey/expected/yezzey-vac-relation-187_cbdb.out + gpcontrib/yezzey/expected/yezzey-vac-relation-187.out + gpcontrib/yezzey/expected/yezzey-vac-relation.out + gpcontrib/yezzey/expected/yezzey-vacuum_cbdb.out + gpcontrib/yezzey/expected/yezzey-vacuum-garbage_cbdb.out + gpcontrib/yezzey/expected/yezzey-vacuum-garbage.out + gpcontrib/yezzey/expected/yezzey-vacuum.out + gpcontrib/yezzey/expected/yezzey-vi-eh-unique_cbdb.out + gpcontrib/yezzey/expected/yezzey-vi-eh-unique.out + gpcontrib/yezzey/images/read.png + gpcontrib/yezzey/images/workflow.png + gpcontrib/yezzey/images/write.png + gpcontrib/yezzey/include/binary_upgrade.h + gpcontrib/yezzey/include/chunkinfo.h + gpcontrib/yezzey/include/expire_hint.h + gpcontrib/yezzey/include/gucs.h + gpcontrib/yezzey/include/io_adv.h + gpcontrib/yezzey/include/io.h + gpcontrib/yezzey/include/meta.h + gpcontrib/yezzey/include/msgproto.h + gpcontrib/yezzey/include/offload_policy.h + gpcontrib/yezzey/include/offload_tablespace_map.h + gpcontrib/yezzey/include/offload.h + gpcontrib/yezzey/include/partition.h + gpcontrib/yezzey/include/pg.h + gpcontrib/yezzey/include/proxy.h + gpcontrib/yezzey/include/storage.h + gpcontrib/yezzey/include/types.h + gpcontrib/yezzey/include/url.h + gpcontrib/yezzey/include/util.h + gpcontrib/yezzey/include/virtual_index.h + gpcontrib/yezzey/include/virtual_schema.h + gpcontrib/yezzey/include/virtual_tablespace.h + gpcontrib/yezzey/include/worker.h + gpcontrib/yezzey/include/xvacuum.h + gpcontrib/yezzey/include/yezzey_heap_api.h + gpcontrib/yezzey/include/yezzey_meta.h + gpcontrib/yezzey/include/ygpver.h + gpcontrib/yezzey/include/yproxy_connector.h + gpcontrib/yezzey/include/yproxy_deleter_v2.h + gpcontrib/yezzey/include/yproxy_deleter.h + gpcontrib/yezzey/include/yproxy_lister.h + gpcontrib/yezzey/include/yproxy_reader.h + gpcontrib/yezzey/include/yproxy_writer.h + gpcontrib/yezzey/include/yproxy.h + gpcontrib/yezzey/LICENSE + gpcontrib/yezzey/Makefile + gpcontrib/yezzey/notes/announce.md + gpcontrib/yezzey/notes/scripts/1. ny-taxi-src-pxf.sql + gpcontrib/yezzey/notes/scripts/2. ny-taxi-src-gp.sql + gpcontrib/yezzey/notes/scripts/3. ny-taxi-yezzey.sql + gpcontrib/yezzey/notes/scripts/4. ny-taxi-pxf-rw.sql + gpcontrib/yezzey/notes/scripts/5. ny-taxi-zones-src-pxf.sql + gpcontrib/yezzey/notes/scripts/6. ny-taxi-zones-src-gp.sql + gpcontrib/yezzey/notes/scripts/7. yezzey-test.sql + gpcontrib/yezzey/notes/scripts/8. ny-taxi-s3.sql + gpcontrib/yezzey/notes/scripts/9. s3-test.sql + gpcontrib/yezzey/README.md + gpcontrib/yezzey/README.ubuntu.install + gpcontrib/yezzey/smgr.c + gpcontrib/yezzey/sql/drop-column_cbdb.sql + gpcontrib/yezzey/sql/drop-column.sql + gpcontrib/yezzey/sql/load_offload_load_cbdb.sql + gpcontrib/yezzey/sql/load_offload_load.sql + gpcontrib/yezzey/sql/simple_cbdb.sql + gpcontrib/yezzey/sql/simple.sql + gpcontrib/yezzey/sql/versions.sql + gpcontrib/yezzey/sql/yezzey_feat_cbdb_last.sql + gpcontrib/yezzey/sql/yezzey_feat_cbdb.sql + gpcontrib/yezzey/sql/yezzey-alter_cbdb.sql + gpcontrib/yezzey/sql/yezzey-alter-toast_cbdb.sql + gpcontrib/yezzey/sql/yezzey-alter-toast.sql + gpcontrib/yezzey/sql/yezzey-alter-ts_cbdb.sql + gpcontrib/yezzey/sql/yezzey-alter-ts.sql + gpcontrib/yezzey/sql/yezzey-alter.sql + gpcontrib/yezzey/sql/yezzey-create-offloaded_cbdb.sql + gpcontrib/yezzey/sql/yezzey-create-offloaded.sql + gpcontrib/yezzey/sql/yezzey-expand_cbdb.sql + gpcontrib/yezzey/sql/yezzey-expand.sql + gpcontrib/yezzey/sql/yezzey-otm-deletion_cbdb.sql + gpcontrib/yezzey/sql/yezzey-otm-deletion.sql + gpcontrib/yezzey/sql/yezzey-otm-feat_cbdb.sql + gpcontrib/yezzey/sql/yezzey-otm-feat.sql + gpcontrib/yezzey/sql/yezzey-reorg_cbdb.sql + gpcontrib/yezzey/sql/yezzey-reorg.sql + gpcontrib/yezzey/sql/yezzey-stat_cbdb.sql + gpcontrib/yezzey/sql/yezzey-stat.sql + gpcontrib/yezzey/sql/yezzey-trunc_cbdb.sql + gpcontrib/yezzey/sql/yezzey-trunc.sql + gpcontrib/yezzey/sql/yezzey-vac-relation_cbdb.sql + gpcontrib/yezzey/sql/yezzey-vac-relation-187_cbdb.sql + gpcontrib/yezzey/sql/yezzey-vac-relation-187.sql + gpcontrib/yezzey/sql/yezzey-vac-relation.sql + gpcontrib/yezzey/sql/yezzey-vacuum_cbdb.sql + gpcontrib/yezzey/sql/yezzey-vacuum-garbage_cbdb.sql + gpcontrib/yezzey/sql/yezzey-vacuum-garbage.sql + gpcontrib/yezzey/sql/yezzey-vacuum.sql + gpcontrib/yezzey/sql/yezzey-vi-eh-unique_cbdb.sql + gpcontrib/yezzey/sql/yezzey-vi-eh-unique.sql + gpcontrib/yezzey/src/binary_upgrade.cpp + gpcontrib/yezzey/src/expire_hint.cpp + gpcontrib/yezzey/src/io_adv.cpp + gpcontrib/yezzey/src/io.cpp + gpcontrib/yezzey/src/meta.cpp + gpcontrib/yezzey/src/msgproto.cpp + gpcontrib/yezzey/src/offload_policy.cpp + gpcontrib/yezzey/src/offload_tablespace_map.cpp + gpcontrib/yezzey/src/offload.cpp + gpcontrib/yezzey/src/partition.cpp + gpcontrib/yezzey/src/proxy.cpp + gpcontrib/yezzey/src/storage.cpp + gpcontrib/yezzey/src/url.cpp + gpcontrib/yezzey/src/util.cpp + gpcontrib/yezzey/src/virtual_index.cpp + gpcontrib/yezzey/src/virtual_schema.cpp + gpcontrib/yezzey/src/virtual_tablespace.cpp + gpcontrib/yezzey/src/xvacuum.cpp + gpcontrib/yezzey/src/yproxy_connector.cpp + gpcontrib/yezzey/src/yproxy_deleter_v2.cpp + gpcontrib/yezzey/src/yproxy_deleter.cpp + gpcontrib/yezzey/src/yproxy_lister.cpp + gpcontrib/yezzey/src/yproxy_reader.cpp + gpcontrib/yezzey/src/yproxy_writer.cpp + gpcontrib/yezzey/test/Makefile + gpcontrib/yezzey/test/msgproto_test.cpp + gpcontrib/yezzey/test/regress_source/expirity.sql + gpcontrib/yezzey/test/regress_source/metadata.sql + gpcontrib/yezzey/test/regress_source/simple_alter.sql + gpcontrib/yezzey/test/regress_source/simple_vac.sql + gpcontrib/yezzey/test/regress_source/simple.sql + gpcontrib/yezzey/test/regress_source/simplebig.sql + gpcontrib/yezzey/test/regress_source/simplelol.sql + gpcontrib/yezzey/test/regress_source/yao.sql + gpcontrib/yezzey/test/regress_source/yezzey_wal.sql + gpcontrib/yezzey/test/regress_source/yezzey-exp.sql + gpcontrib/yezzey/test/regress_source/yezzey-large.sql + gpcontrib/yezzey/test/regress_source/yezzey-reorg.sql + gpcontrib/yezzey/test/regress_source/yezzey-vindex.sql + gpcontrib/yezzey/test/regress_source/yezzey.sql + gpcontrib/yezzey/test/yproxy_test.cpp + gpcontrib/yezzey/yezzey--1.0--1.8.sql + gpcontrib/yezzey/yezzey--1.0.sql + gpcontrib/yezzey/yezzey--1.8--1.8.1.sql + gpcontrib/yezzey/yezzey--1.8.1--1.8.2.sql + gpcontrib/yezzey/yezzey--1.8.2--1.8.3.sql + gpcontrib/yezzey/yezzey--1.8.3--1.8.4.sql + gpcontrib/yezzey/yezzey--1.8.4--1.8.5.sql + gpcontrib/yezzey/yezzey--1.8.5--1.8.6.sql + gpcontrib/yezzey/yezzey--1.8.6--1.8.7.sql + gpcontrib/yezzey/yezzey--1.8.7--1.8.8.sql + gpcontrib/yezzey/yezzey--1.8.8.sql + gpcontrib/yezzey/yezzey.c + gpcontrib/yezzey/yezzey.control + gpcontrib/yezzey/yezzey.h + gpcontrib/yezzey/yezzey/devops/packaging/ubuntu/script/build_cloudberry_deb.sh + gpcontrib/yezzey/ystat.h + diff --git a/src/Makefile.global.in b/src/Makefile.global.in index f11e6091618..7e7dcdbbeeb 100644 --- a/src/Makefile.global.in +++ b/src/Makefile.global.in @@ -273,6 +273,7 @@ ZSTD_LIBS = @ZSTD_LIBS@ EVENT_LIBS = @EVENT_LIBS@ with_diskquota = @with_diskquota@ with_gp_stats_collector = @with_gp_stats_collector@ +with_yezzey = @with_yezzey@ ########################################################################## #