From: Justin Pryzby Date: Fri, 12 Mar 2021 15:35:53 -0600 Subject: [PATCH 3/6] Default to zstd.. for CI, not for merge --- .cirrus.yml | 14 ++++++++++++++ configure | 6 ++++-- configure.ac | 2 +- src/backend/access/transam/xlog.c | 2 +- src/backend/utils/misc/guc.c | 2 +- src/tools/ci/windows_build_config.pl | 1 + 6 files changed, 22 insertions(+), 5 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index d10b0a82f9..4735c67608 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -77,6 +77,7 @@ task: mkdir -m 770 /tmp/cores chown root:postgres /tmp/cores sysctl kern.corefile='/tmp/cores/%N.%P.core' + pkg install -y zstd # NB: Intentionally build without --with-llvm. The freebsd image size is # already large enough to make VM startup slow, and even without llvm @@ -184,6 +185,8 @@ task: mkdir -m 770 /tmp/cores chown root:postgres /tmp/cores sysctl kernel.core_pattern='/tmp/cores/%e-%s-%p.core' + apt-get update + apt-get -y install libzstd-dev configure_script: | su postgres <<-EOF @@ -265,6 +268,7 @@ task: openldap \ openssl \ python \ + zstd \ tcl-tk brew cleanup -s # to reduce cache size @@ -385,6 +389,12 @@ task: set configure_script: + # XXX: not working + - choco install -y cmake + - curl -L -o zstd.zip https://github.com/facebook/zstd/archive/refs/tags/v1.5.2.zip + - unzip zstd.zip + - cd zstd-1.5.2 && vcvarsall x64 && build\VS_scripts\build.VS2017.cmd && cd .. + #- cp zstd-1.5.2/build/VS_scripts/build.VS2017.cmd # copy errors out when using forward slashes - copy src\tools\ci\windows_build_config.pl src\tools\msvc\config.pl - vcvarsall x64 @@ -467,6 +477,10 @@ task: image: $CONTAINER_REPO/linux_debian_bullseye_ci:latest cpu: $CPUS + setup_os_script: | + apt-get update + apt-get -y install libzstd-dev + sysinfo_script: | id uname -a diff --git a/configure b/configure index f3cb5c2b51..b88917fcb5 100755 --- a/configure +++ b/configure @@ -1584,7 +1584,7 @@ Optional Packages: use system time zone data in DIR --without-zlib do not use Zlib --with-lz4 build with LZ4 support - --with-zstd build with ZSTD support + --without-zstd build without Zstd support --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-ssl=LIB use LIB for SSL/TLS support (openssl) --with-openssl obsolete spelling of --with-ssl=openssl @@ -9070,7 +9070,9 @@ $as_echo "#define USE_ZSTD 1" >>confdefs.h esac else - with_zstd=no + with_zstd=yes + +$as_echo "#define USE_ZSTD 1" >>confdefs.h fi diff --git a/configure.ac b/configure.ac index 19d1a80367..4ae681d8bf 100644 --- a/configure.ac +++ b/configure.ac @@ -1060,7 +1060,7 @@ fi # ZSTD # AC_MSG_CHECKING([whether to build with ZSTD support]) -PGAC_ARG_BOOL(with, zstd, no, [build with ZSTD support], +PGAC_ARG_BOOL(with, zstd, yes, [build with ZSTD support], [AC_DEFINE([USE_ZSTD], 1, [Define to 1 to build with ZSTD support. (--with-zstd)])]) AC_MSG_RESULT([$with_zstd]) AC_SUBST(with_zstd) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index 0d2bd7a357..9aa4d3eaea 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -120,7 +120,7 @@ char *XLogArchiveCommand = NULL; bool EnableHotStandby = false; bool fullPageWrites = true; bool wal_log_hints = false; -int wal_compression = WAL_COMPRESSION_NONE; +int wal_compression = WAL_COMPRESSION_ZSTD; char *wal_consistency_checking_string = NULL; bool *wal_consistency_checking = NULL; bool wal_init_zero = true; diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index 66e6d664b0..96854b6a2b 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -4900,7 +4900,7 @@ static struct config_enum ConfigureNamesEnum[] = NULL }, &wal_compression, - WAL_COMPRESSION_NONE, wal_compression_options, + WAL_COMPRESSION_ZSTD, wal_compression_options, NULL, NULL, NULL }, diff --git a/src/tools/ci/windows_build_config.pl b/src/tools/ci/windows_build_config.pl index b0d4360c74..97ce79ea7f 100644 --- a/src/tools/ci/windows_build_config.pl +++ b/src/tools/ci/windows_build_config.pl @@ -9,5 +9,6 @@ $config->{"asserts"} = 1; $config->{"openssl"} = "c:/openssl/1.1/"; $config->{"perl"} = "c:/strawberry/$ENV{DEFAULT_PERL_VERSION}/perl/"; $config->{"python"} = "c:/python/"; +$config->{"zstd"} = "c:/zstd/"; 1; -- 2.17.1 --pAwQNkOnpTn9IO2O Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="0004-Use-GUC-hooks-to-support-compression-level.patch"