From b22f9e179fff16354352646e094c5c695c4749d2 Mon Sep 17 00:00:00 2001 From: Mats Kindahl Date: Mon, 14 Jun 2021 15:23:21 +0200 Subject: [PATCH] Add workflow and CMake support for formatting Add a workflow to check that CMake files are correctly formatted as well as a custom target to format CMake files in the repository. This commit also runs the formatting on all CMake files in the repository. --- .github/workflows/code_style.yaml | 14 + CMakeLists.txt | 522 ++++++++++-------- codecov/CMakeLists.txt | 104 ++-- scripts/CMakeLists.txt | 9 +- scripts/cmake_format_all.sh | 7 + sql/CMakeLists.txt | 280 +++++----- src/CMakeLists.txt | 151 +++-- src/bgw/CMakeLists.txt | 9 +- src/bgw_policy/CMakeLists.txt | 6 +- src/build-defs.cmake | 36 +- src/chunk_append/CMakeLists.txt | 11 +- src/import/CMakeLists.txt | 6 +- src/loader/CMakeLists.txt | 32 +- src/net/CMakeLists.txt | 15 +- src/nodes/CMakeLists.txt | 11 +- .../constraint_aware_append/CMakeLists.txt | 4 +- src/telemetry/CMakeLists.txt | 7 +- test/CMakeLists.txt | 130 ++--- test/isolation/specs/CMakeLists.txt | 16 +- test/pgtest/CMakeLists.txt | 78 ++- test/sql/CMakeLists.txt | 197 ++++--- test/sql/loader/CMakeLists.txt | 34 +- test/src/CMakeLists.txt | 19 +- test/src/bgw/CMakeLists.txt | 10 +- test/src/loader/CMakeLists.txt | 57 +- test/src/net/CMakeLists.txt | 10 +- test/src/telemetry/CMakeLists.txt | 7 +- test/test-defs.cmake | 152 ++--- tsl/src/CMakeLists.txt | 72 ++- tsl/src/bgw_policy/CMakeLists.txt | 15 +- tsl/src/build-defs.cmake | 41 +- tsl/src/compression/CMakeLists.txt | 19 +- tsl/src/continuous_aggs/CMakeLists.txt | 15 +- tsl/src/fdw/CMakeLists.txt | 29 +- tsl/src/nodes/CMakeLists.txt | 6 +- tsl/src/nodes/compress_dml/CMakeLists.txt | 4 +- tsl/src/nodes/decompress_chunk/CMakeLists.txt | 8 +- tsl/src/nodes/gapfill/CMakeLists.txt | 9 +- tsl/src/nodes/skip_scan/CMakeLists.txt | 6 +- tsl/src/remote/CMakeLists.txt | 3 +- tsl/test/CMakeLists.txt | 145 +++-- tsl/test/isolation/CMakeLists.txt | 2 +- tsl/test/isolation/specs/CMakeLists.txt | 28 +- tsl/test/shared/sql/CMakeLists.txt | 39 +- tsl/test/sql/CMakeLists.txt | 217 ++++---- tsl/test/src/CMakeLists.txt | 27 +- tsl/test/src/remote/CMakeLists.txt | 29 +- tsl/test/ssl/CMakeLists.txt | 63 ++- tsl/test/t/CMakeLists.txt | 6 +- 49 files changed, 1366 insertions(+), 1351 deletions(-) create mode 100755 scripts/cmake_format_all.sh diff --git a/.github/workflows/code_style.yaml b/.github/workflows/code_style.yaml index 0d48f71656d..6df45773e5a 100644 --- a/.github/workflows/code_style.yaml +++ b/.github/workflows/code_style.yaml @@ -8,6 +8,20 @@ on: - prerelease_test pull_request: jobs: + cmake_checks: + name: Check CMake files + runs-on: ubuntu-20.04 + steps: + - name: Install prerequisites + run: pip install cmakelang + - name: Checkout source + uses: actions/checkout@v2 + - name: Run format on CMake files + run: | + find -name CMakeLists.txt -exec cmake-format -i {} + + find src test tsl -name '*.cmake' -exec cmake-format -i {} + + - name: Check for diff + run: git diff --exit-code perl_checks: name: Check Perl code in tree runs-on: ubuntu-20.04 diff --git a/CMakeLists.txt b/CMakeLists.txt index c8a763029d1..d8c71e89c6d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,27 +14,29 @@ function(GET_PG_CONFIG var) OUTPUT_STRIP_TRAILING_WHITESPACE) endif() - # On Windows, fields that are not recorded will be given the value - # "not recorded", so we translate this into -NOTFOUND to make - # it undefined. + # On Windows, fields that are not recorded will be given the value "not + # recorded", so we translate this into -NOTFOUND to make it undefined. # - # It will then also show as, e.g., "PG_LDFLAGS-NOTFOUND" in any - # string interpolation, making it obvious that it is an undefined - # CMake variable. + # It will then also show as, e.g., "PG_LDFLAGS-NOTFOUND" in any string + # interpolation, making it obvious that it is an undefined CMake variable. if("${_temp}" STREQUAL "not recorded") set(_temp ${var}-NOTFOUND) endif() - set(${var} ${_temp} PARENT_SCOPE) + set(${var} + ${_temp} + PARENT_SCOPE) endfunction() configure_file("version.config" "version.config" COPYONLY) file(READ version.config VERSION_CONFIG) -set(VERSION_REGEX "version[\t ]*=[\t ]*([0-9]+\\.[0-9]+\\.*[0-9]*)([-]([a-z]+[0-9]*))?([-](dev))?\r?\nupdate_from_version[\t ]*=[\t ]*([0-9]+\\.[0-9]+\\.*[0-9]*([-]([a-z]+[0-9]*))?)*(\r?\n)*$") +set(VERSION_REGEX + "version[\t ]*=[\t ]*([0-9]+\\.[0-9]+\\.*[0-9]*)([-]([a-z]+[0-9]*))?([-](dev))?\r?\nupdate_from_version[\t ]*=[\t ]*([0-9]+\\.[0-9]+\\.*[0-9]*([-]([a-z]+[0-9]*))?)*(\r?\n)*$" +) -if (NOT (${VERSION_CONFIG} MATCHES ${VERSION_REGEX})) +if(NOT (${VERSION_CONFIG} MATCHES ${VERSION_REGEX})) message(FATAL_ERROR "Cannot read version from version.config") -endif () +endif() # a hack to avoid change of SQL extschema variable set(extschema "@extschema@") @@ -43,33 +45,49 @@ set(VERSION_MOD ${CMAKE_MATCH_3}) set(VERSION_DEV ${CMAKE_MATCH_5}) set(UPDATE_FROM_VERSION ${CMAKE_MATCH_6}) -if (VERSION_MOD AND VERSION_DEV) +if(VERSION_MOD AND VERSION_DEV) set(PROJECT_VERSION_MOD ${VERSION}-${VERSION_MOD}-${VERSION_DEV}) -elseif (VERSION_MOD) +elseif(VERSION_MOD) set(PROJECT_VERSION_MOD ${VERSION}-${VERSION_MOD}) -elseif (VERSION_DEV) +elseif(VERSION_DEV) set(PROJECT_VERSION_MOD ${VERSION}-${VERSION_DEV}) -else () +else() set(PROJECT_VERSION_MOD ${VERSION}) -endif () +endif() -# Set project name, version, and language. Language needs to be set for compiler checks -project(timescaledb VERSION ${VERSION} LANGUAGES C) +# Set project name, version, and language. Language needs to be set for compiler +# checks +project( + timescaledb + VERSION ${VERSION} + LANGUAGES C) -if (NOT CMAKE_BUILD_TYPE) +if(NOT CMAKE_BUILD_TYPE) # Default to Release builds - set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel" FORCE) -endif () + set(CMAKE_BUILD_TYPE + Release + CACHE + STRING + "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel" + FORCE) +endif() set(SUPPORTED_BUILD_TYPES Debug Release RelWithDebInfo MinSizeRel) -if (NOT CMAKE_BUILD_TYPE IN_LIST SUPPORTED_BUILD_TYPES) - message(FATAL_ERROR "Bad CMAKE_BUILD_TYPE. Expected one of ${SUPPORTED_BUILD_TYPES}") +if(NOT CMAKE_BUILD_TYPE IN_LIST SUPPORTED_BUILD_TYPES) + message( + FATAL_ERROR "Bad CMAKE_BUILD_TYPE. Expected one of ${SUPPORTED_BUILD_TYPES}" + ) endif() -message(STATUS "TimescaleDB version ${PROJECT_VERSION_MOD}. Can be updated from version ${UPDATE_FROM_VERSION}") +message( + STATUS + "TimescaleDB version ${PROJECT_VERSION_MOD}. Can be updated from version ${UPDATE_FROM_VERSION}" +) message(STATUS "Build type is ${CMAKE_BUILD_TYPE}") -set(PROJECT_INSTALL_METHOD source CACHE STRING "Specify what install platform this binary +set(PROJECT_INSTALL_METHOD + source + CACHE STRING "Specify what install platform this binary is built for") message(STATUS "Install method is '${PROJECT_INSTALL_METHOD}'") @@ -79,61 +97,74 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON) # Code coverage is optional and OFF by default option(CODECOVERAGE "Enable code coverage for the build" OFF) -if (CMAKE_BUILD_TYPE MATCHES Debug) - # CMAKE_BUILD_TYPE is set at CMake configuration type. But usage of CMAKE_C_FLAGS_DEBUG is - # determined at build time by running cmake --build . --config Debug (at least on Windows). - # Therefore, we only set these flags if the configuration-time CMAKE_BUILD_TYPE is set to - # Debug. Then Debug enabled builds will only happen on Windows if both the configuration- - # and build-time settings are Debug. +if(CMAKE_BUILD_TYPE MATCHES Debug) + # CMAKE_BUILD_TYPE is set at CMake configuration type. But usage of + # CMAKE_C_FLAGS_DEBUG is determined at build time by running cmake --build . + # --config Debug (at least on Windows). Therefore, we only set these flags if + # the configuration-time CMAKE_BUILD_TYPE is set to Debug. Then Debug enabled + # builds will only happen on Windows if both the configuration- and build-time + # settings are Debug. set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DDEBUG=1 -DTS_DEBUG=1") -endif (CMAKE_BUILD_TYPE MATCHES Debug) +endif(CMAKE_BUILD_TYPE MATCHES Debug) set(SUPPORTED_COMPILERS "GNU" "Clang" "AppleClang" "MSVC") # Check for a supported compiler -if (NOT CMAKE_C_COMPILER_ID IN_LIST SUPPORTED_COMPILERS) - message(FATAL_ERROR "Unsupported compiler ${CMAKE_C_COMPILER_ID}. Supported compilers are: ${SUPPORTED_COMPILERS}") -endif () +if(NOT CMAKE_C_COMPILER_ID IN_LIST SUPPORTED_COMPILERS) + message( + FATAL_ERROR + "Unsupported compiler ${CMAKE_C_COMPILER_ID}. Supported compilers are: ${SUPPORTED_COMPILERS}" + ) +endif() -# Option to treat warnings as errors when compiling (default on for -# debug builds, off for all other build types) -if (CMAKE_BUILD_TYPE STREQUAL Debug) +# Option to treat warnings as errors when compiling (default on for debug +# builds, off for all other build types) +if(CMAKE_BUILD_TYPE STREQUAL Debug) message(STATUS "CMAKE_BUILD_TYPE matches Debug") - option(WARNINGS_AS_ERRORS "Make compiler warnings into errors (default ON)" ON) + option(WARNINGS_AS_ERRORS "Make compiler warnings into errors (default ON)" + ON) else() message(STATUS "CMAKE_BUILD_TYPE does not match Debug") - option(WARNINGS_AS_ERRORS "Make compiler warnings into errors (default ON)" OFF) + option(WARNINGS_AS_ERRORS "Make compiler warnings into errors (default ON)" + OFF) endif() -if (WARNINGS_AS_ERRORS) - if (CMAKE_C_COMPILER_ID MATCHES "GNU|Clang|AppleClang") +if(WARNINGS_AS_ERRORS) + if(CMAKE_C_COMPILER_ID MATCHES "GNU|Clang|AppleClang") add_compile_options(-Werror) - elseif (CMAKE_C_COMPILER_ID MATCHES "MSVC") + elseif(CMAKE_C_COMPILER_ID MATCHES "MSVC") add_compile_options(/WX) - endif () -endif (WARNINGS_AS_ERRORS) + endif() +endif(WARNINGS_AS_ERRORS) if(CMAKE_C_COMPILER_ID MATCHES "GNU|AppleClang|Clang") - # These two flags generate too many errors currently, but we - # probably want these optimizations enabled. + # These two flags generate too many errors currently, but we probably want + # these optimizations enabled. # # -fdelete-null-pointer-checks -Wnull-dereference - # This flag avoid some subtle bugs related to standard conversions, - # but currently does not compile because we are using too many - # implicit conversions that potentially lose precision. + # This flag avoid some subtle bugs related to standard conversions, but + # currently does not compile because we are using too many implicit + # conversions that potentially lose precision. # # -Wconversions # These flags are supported on all compilers. add_compile_options( - -Wempty-body -Wvla -Wall -Wmissing-prototypes -Wpointer-arith - -Werror=vla -Wendif-labels - -fno-strict-aliasing -fno-omit-frame-pointer) - - # These flags are just supported on some of the compilers, so we - # check them before adding them. - check_c_compiler_flag(-Wno-unused-command-line-argument CC_SUPPORTS_NO_UNUSED_CLI_ARG) + -Wempty-body + -Wvla + -Wall + -Wmissing-prototypes + -Wpointer-arith + -Werror=vla + -Wendif-labels + -fno-strict-aliasing + -fno-omit-frame-pointer) + + # These flags are just supported on some of the compilers, so we check them + # before adding them. + check_c_compiler_flag(-Wno-unused-command-line-argument + CC_SUPPORTS_NO_UNUSED_CLI_ARG) if(CC_SUPPORTS_NO_UNUSED_CLI_ARG) add_compile_options(-Wno-unused-command-line-argument) endif() @@ -154,66 +185,78 @@ if(CMAKE_C_COMPILER_ID MATCHES "GNU|AppleClang|Clang") check_c_compiler_flag(-Wimplicit-fallthrough CC_SUPPORTS_IMPLICIT_FALLTHROUGH) if(CC_SUPPORTS_IMPLICIT_FALLTHROUGH) - add_compile_options( -Wimplicit-fallthrough) + add_compile_options(-Wimplicit-fallthrough) else() message(STATUS "Compiler does not support -Wimplicit-fallthrough") endif() # strict overflow check produces false positives on gcc < 8 - if (CMAKE_COMPILER_IS_GNUCC AND CMAKE_C_COMPILER_VERSION VERSION_LESS 8) + if(CMAKE_COMPILER_IS_GNUCC AND CMAKE_C_COMPILER_VERSION VERSION_LESS 8) add_compile_options(-Wno-strict-overflow) endif() - # On UNIX, the compiler needs to support -fvisibility=hidden to hide symbols by default + # On UNIX, the compiler needs to support -fvisibility=hidden to hide symbols + # by default check_c_compiler_flag(-fvisibility=hidden CC_SUPPORTS_VISIBILITY_HIDDEN) - if (NOT CC_SUPPORTS_VISIBILITY_HIDDEN) - message(FATAL_ERROR "The compiler ${CMAKE_C_COMPILER_ID} does not support -fvisibility=hidden") - endif (NOT CC_SUPPORTS_VISIBILITY_HIDDEN) + if(NOT CC_SUPPORTS_VISIBILITY_HIDDEN) + message( + FATAL_ERROR + "The compiler ${CMAKE_C_COMPILER_ID} does not support -fvisibility=hidden" + ) + endif(NOT CC_SUPPORTS_VISIBILITY_HIDDEN) endif() # On Windows, default to only include Release builds so MSBuild.exe 'just works' -if (WIN32 AND NOT CMAKE_CONFIGURATION_TYPES) - set(CMAKE_CONFIGURATION_TYPES Release CACHE STRING "Semicolon separated list of supported configuration types, only supports Debug, Release, MinSizeRel, and RelWithDebInfo, anything else will be ignored." FORCE) -endif () +if(WIN32 AND NOT CMAKE_CONFIGURATION_TYPES) + set(CMAKE_CONFIGURATION_TYPES + Release + CACHE + STRING + "Semicolon separated list of supported configuration types, only supports Debug, Release, MinSizeRel, and RelWithDebInfo, anything else will be ignored." + FORCE) +endif() message(STATUS "Using compiler ${CMAKE_C_COMPILER_ID}") -if (ENABLE_OPTIMIZER_DEBUG) - message(STATUS "Enabling OPTIMIZER_DEBUG. Make sure that ${PG_SOURCE_DIR} is installed and built with OPTIMIZER_DEBUG.") +if(ENABLE_OPTIMIZER_DEBUG) + message( + STATUS + "Enabling OPTIMIZER_DEBUG. Make sure that ${PG_SOURCE_DIR} is installed and built with OPTIMIZER_DEBUG." + ) add_definitions(-DOPTIMIZER_DEBUG) endif() # Search paths for Postgres binaries if(WIN32) - find_path(PG_PATH - postgres.exe + find_path( + PG_PATH postgres.exe PATHS "C:/PostgreSQL" "C:/Program Files/PostgreSQL" PATH_SUFFIXES bin 12/bin 13/bin DOC "The path to a PostgreSQL installation") elseif(UNIX) - find_path(PG_PATH - postgres + find_path( + PG_PATH postgres PATHS $ENV{HOME} /opt/local/pgsql /usr/local/pgsql /usr/lib/postgresql PATH_SUFFIXES bin 12/bin 13/bin DOC "The path to a PostgreSQL installation") endif() -find_program(PG_CONFIG pg_config +find_program( + PG_CONFIG pg_config HINTS ${PG_PATH} PATH_SUFFIXES bin DOC "The path to the pg_config of the PostgreSQL version to compile against") -if (NOT PG_CONFIG) +if(NOT PG_CONFIG) message(FATAL_ERROR "Unable to find 'pg_config'") -endif () +endif() find_package(Git) if(GIT_FOUND) - # We use "git describe" to generate the tag. It will find the latest - # tag and also add some additional information if we are not on the - # tag. + # We use "git describe" to generate the tag. It will find the latest tag and + # also add some additional information if we are not on the tag. execute_process( COMMAND ${GIT_EXECUTABLE} describe --dirty --always --tags WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} @@ -238,7 +281,9 @@ if(GIT_FOUND) OUTPUT_STRIP_TRAILING_WHITESPACE) # Results are non-zero if there were an error - if(_describe_RESULT OR _revparse_RESULT OR _log_RESULT) + if(_describe_RESULT + OR _revparse_RESULT + OR _log_RESULT) message(STATUS "Unable to get git commit information") endif() endif() @@ -251,24 +296,24 @@ execute_process( OUTPUT_VARIABLE PG_VERSION_STRING OUTPUT_STRIP_TRAILING_WHITESPACE) -if (NOT ${PG_VERSION_STRING} MATCHES "^PostgreSQL[ ]+([0-9]+)(\\.([0-9]+)|devel|rc[0-9]+)") +if(NOT ${PG_VERSION_STRING} MATCHES + "^PostgreSQL[ ]+([0-9]+)(\\.([0-9]+)|devel|rc[0-9]+)") message(FATAL_ERROR "Could not parse PostgreSQL version ${PG_VERSION_STRING}") -endif () +endif() set(PG_VERSION_MAJOR ${CMAKE_MATCH_1}) -if (${CMAKE_MATCH_COUNT} GREATER "2" ) +if(${CMAKE_MATCH_COUNT} GREATER "2") set(PG_VERSION_MINOR ${CMAKE_MATCH_3}) else() set(PG_VERSION_MINOR 0) -endif () +endif() set(PG_VERSION "${PG_VERSION_MAJOR}.${PG_VERSION_MINOR}") message(STATUS "Compiling against PostgreSQL version ${PG_VERSION}") -# Ensure that PostgreSQL version is supported and consistent -# with src/compat.h version check -if ((${PG_VERSION_MAJOR} LESS "12") OR - (${PG_VERSION_MAJOR} GREATER "13")) +# Ensure that PostgreSQL version is supported and consistent with src/compat.h +# version check +if((${PG_VERSION_MAJOR} LESS "12") OR (${PG_VERSION_MAJOR} GREATER "13")) message(FATAL_ERROR "TimescaleDB only supports PostgreSQL 12 and 13") endif() @@ -293,89 +338,102 @@ foreach(option ${PG_CFLAGS}) endforeach() set(PG_CFLAGS "${filtered} ${PG_CFLAGS_SL}") -find_path(PG_SOURCE_DIR - src/include/pg_config.h.in - HINTS - $ENV{HOME} - $ENV{HOME}/projects - $ENV{HOME}/Projects - $ENV{HOME}/development - $ENV{HOME}/Development - $ENV{HOME}/workspace - PATH_SUFFIXES - postgres - postgresql - pgsql - DOC - "The path to the PostgreSQL source tree") - -if (PG_SOURCE_DIR) +find_path( + PG_SOURCE_DIR src/include/pg_config.h.in + HINTS $ENV{HOME} $ENV{HOME}/projects $ENV{HOME}/Projects + $ENV{HOME}/development $ENV{HOME}/Development $ENV{HOME}/workspace + PATH_SUFFIXES postgres postgresql pgsql + DOC "The path to the PostgreSQL source tree") + +if(PG_SOURCE_DIR) message(STATUS "Found PostgreSQL source in ${PG_SOURCE_DIR}") -endif (PG_SOURCE_DIR) +endif(PG_SOURCE_DIR) set(EXT_CONTROL_FILE ${PROJECT_NAME}.control) -if (${PG_VERSION_MAJOR} GREATER "12") +if(${PG_VERSION_MAJOR} GREATER "12") set(TRUSTED trusted=true) endif() configure_file(${EXT_CONTROL_FILE}.in ${EXT_CONTROL_FILE}) -install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/${EXT_CONTROL_FILE} - DESTINATION "${PG_SHAREDIR}/extension") +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${EXT_CONTROL_FILE} + DESTINATION "${PG_SHAREDIR}/extension") -# We look for specific versions installed by distributions before the -# default name since distros that have installed clang-format-9 will -# not work and the user need to install an earlier version, which will -# then be named "clang-format-N". +# We look for specific versions installed by distributions before the default +# name since distros that have installed clang-format-9 will not work and the +# user need to install an earlier version, which will then be named +# "clang-format-N". # -# This breaks the CMake convention of using the "default" name first -# to handle local installs. If this turns out to be something that we -# want to support, we need to look specifically for "clang-format" in -# the local installation paths before looking for the versioned names -# in standard installation paths. -find_program(CLANG_FORMAT +# This breaks the CMake convention of using the "default" name first to handle +# local installs. If this turns out to be something that we want to support, we +# need to look specifically for "clang-format" in the local installation paths +# before looking for the versioned names in standard installation paths. +find_program( + CLANG_FORMAT NAMES clang-format-8 clang-format-7 clang-format - PATHS - /usr/bin - /usr/local/bin - /usr/local/opt/ - /usr/local/opt/llvm/bin - /opt/bin + PATHS /usr/bin /usr/local/bin /usr/local/opt/ /usr/local/opt/llvm/bin /opt/bin DOC "The path to clang-format") -if (CLANG_FORMAT) +if(CLANG_FORMAT) execute_process( COMMAND ${CLANG_FORMAT} --version OUTPUT_VARIABLE CLANG_FORMAT_VERSION_OUTPUT OUTPUT_STRIP_TRAILING_WHITESPACE) - if (NOT ${CLANG_FORMAT_VERSION_OUTPUT} MATCHES "version[ ]+([0-9]+)\\.([0-9]+)(\\.([0-9]+))*") - message(FATAL_ERROR "Could not parse clang-format version ${CLANG_FORMAT_VERSION_OUTPUT}") - endif () + if(NOT ${CLANG_FORMAT_VERSION_OUTPUT} MATCHES + "version[ ]+([0-9]+)\\.([0-9]+)(\\.([0-9]+))*") + message( + FATAL_ERROR + "Could not parse clang-format version ${CLANG_FORMAT_VERSION_OUTPUT}") + endif() if((${CMAKE_MATCH_1} LESS "7") OR (${CMAKE_MATCH_1} GREATER "8")) message(WARNING "clang-format version 7 or 8 required") set(CLANG_FORMAT False) endif() -endif () +endif() -if (NOT CLANG_FORMAT) +if(NOT CLANG_FORMAT) find_program(DOCKER docker DOC "The path to docker") if(NOT DOCKER) - message(WARNING "clang-format is disabled (can't find clang-format or docker)") - else () + message( + WARNING "clang-format is disabled (can't find clang-format or docker)") + else() message(STATUS "Using docker based clang-format") - add_custom_target(format - COMMAND docker run --rm -it --user=`id -u`:`id -g` --volume=${PROJECT_SOURCE_DIR}:/timescaledb timescaledev/postgres-dev-clang:clang7-pg11.1 /timescaledb/scripts/clang_format_all.sh - ) + add_custom_target( + clang-format + COMMAND + docker run --rm -it --user=`id -u`:`id -g` + --volume=${PROJECT_SOURCE_DIR}:/timescaledb + timescaledev/postgres-dev-clang:clang7-pg11.1 + /timescaledb/scripts/clang_format_all.sh) endif() else() message(STATUS "Using local clang-format") - add_custom_target(format - COMMAND ${CMAKE_COMMAND} -E env CLANG_FORMAT=${CLANG_FORMAT} ${PROJECT_SOURCE_DIR}/scripts/clang_format_all.sh - ) -endif () + add_custom_target( + clang-format COMMAND ${CMAKE_COMMAND} -E env CLANG_FORMAT=${CLANG_FORMAT} + ${PROJECT_SOURCE_DIR}/scripts/clang_format_all.sh) +endif() + +find_program( + CMAKE_FORMAT + NAMES cmake-format + PATHS /usr/bin /usr/local/bin /usr/local/opt/ /usr/local/opt/llvm/bin /opt/bin + DOC "The path to cmake-format") + +if(CMAKE_FORMAT) + add_custom_target( + cmake-format COMMAND ${CMAKE_COMMAND} -E env CMAKE_FORMAT=${CMAKE_FORMAT} + ${PROJECT_SOURCE_DIR}/scripts/cmake_format_all.sh) +endif() + +if(CMAKE_FORMAT OR CLANG_FORMAT) + add_custom_target(format) + add_dependencies(format clang-format) + if(CMAKE_FORMAT) + add_dependencies(format cmake-format) + endif() +endif() if(CMAKE_C_COMPILER_ID MATCHES "Clang|AppleClang") set(LINTER_DEFAULT ON) @@ -384,83 +442,98 @@ else() endif() # Linter support via clang-tidy. Enabled when using clang as compiler -option(LINTER "Enable linter support using clang-tidy (ON when using clang)" ${LINTER_DEFAULT}) - -if (LINTER) - find_program(CLANG_TIDY - clang-tidy - PATHS - /usr/bin - /usr/local/bin - /usr/local/opt/ - /usr/local/opt/llvm/bin - /opt/bin +option(LINTER "Enable linter support using clang-tidy (ON when using clang)" + ${LINTER_DEFAULT}) + +if(LINTER) + find_program( + CLANG_TIDY clang-tidy + PATHS /usr/bin /usr/local/bin /usr/local/opt/ /usr/local/opt/llvm/bin + /opt/bin DOC "The path to the clang-tidy linter") - if (CLANG_TIDY) + if(CLANG_TIDY) message(STATUS "Linter support (clang-tidy) enabled") set(CMAKE_C_CLANG_TIDY "${CLANG_TIDY};--quiet") - else () + else() message(STATUS "Install clang-tidy to enable code linting") - endif (CLANG_TIDY) -endif (LINTER) + endif(CLANG_TIDY) +endif(LINTER) option(USE_OPENSSL "Enable use of OpenSSL if available" ON) -option(SEND_TELEMETRY_DEFAULT "The default value for whether to send telemetry" ON) +option(SEND_TELEMETRY_DEFAULT "The default value for whether to send telemetry" + ON) option(REGRESS_CHECKS "PostgreSQL regress checks through installcheck" ON) -option(ENABLE_OPTIMIZER_DEBUG "Enable OPTIMIZER_DEBUG when building. Requires Postgres server to be built with OPTIMIZER_DEBUG." OFF) - -# Option to enable assertions. Note that if we include headers from a -# PostgreSQL build that has assertions enabled, we might inherit that -# setting without explicitly enabling assertions via the ASSERTIONS -# option defined here. Thus, this option is mostly useful to enable -# assertions when the PostgreSQL we compile against has it disabled. +option( + ENABLE_OPTIMIZER_DEBUG + "Enable OPTIMIZER_DEBUG when building. Requires Postgres server to be built with OPTIMIZER_DEBUG." + OFF) + +# Option to enable assertions. Note that if we include headers from a PostgreSQL +# build that has assertions enabled, we might inherit that setting without +# explicitly enabling assertions via the ASSERTIONS option defined here. Thus, +# this option is mostly useful to enable assertions when the PostgreSQL we +# compile against has it disabled. option(ASSERTIONS "Compile with assertion checks (default OFF)" OFF) -if (NOT EXISTS ${PG_INCLUDEDIR}/pg_config.h) - message(FATAL_ERROR "Could not find pg_config.h in ${PG_INCLUDEDIR}. " - "Make sure PG_PATH points to a valid PostgreSQL installation that includes development headers.") -endif () +if(NOT EXISTS ${PG_INCLUDEDIR}/pg_config.h) + message( + FATAL_ERROR + "Could not find pg_config.h in ${PG_INCLUDEDIR}. " + "Make sure PG_PATH points to a valid PostgreSQL installation that includes development headers." + ) +endif() file(READ ${PG_INCLUDEDIR}/pg_config.h PG_CONFIG_H) -string(REGEX MATCH "#define USE_ASSERT_CHECKING 1" PG_USE_ASSERT_CHECKING ${PG_CONFIG_H}) +string(REGEX MATCH "#define USE_ASSERT_CHECKING 1" PG_USE_ASSERT_CHECKING + ${PG_CONFIG_H}) -if (PG_USE_ASSERT_CHECKING AND NOT ASSERTIONS) - message("Assertion checks are OFF although enabled in PostgreSQL build (pg_config.h). " +if(PG_USE_ASSERT_CHECKING AND NOT ASSERTIONS) + message( + "Assertion checks are OFF although enabled in PostgreSQL build (pg_config.h). " "The PostgreSQL setting for assertions will take precedence.") -elseif (ASSERTIONS) +elseif(ASSERTIONS) message(STATUS "Assertion checks are ON") add_compile_definitions(USE_ASSERT_CHECKING=1) -elseif (CMAKE_BUILD_TYPE MATCHES Debug) - message("Assertion checks are OFF in Debug build. Set -DASSERTIONS=ON to enable assertions.") -else () +elseif(CMAKE_BUILD_TYPE MATCHES Debug) + message( + "Assertion checks are OFF in Debug build. Set -DASSERTIONS=ON to enable assertions." + ) +else() message(STATUS "Assertion checks are OFF") -endif () +endif() # Check if PostgreSQL has OpenSSL enabled by inspecting pg_config --configure. -# Right now, a Postgres header will redefine an OpenSSL function if Postgres is not installed --with-openssl, -# so in order for TimescaleDB to compile correctly with OpenSSL, Postgres must also have OpenSSL enabled. +# Right now, a Postgres header will redefine an OpenSSL function if Postgres is +# not installed --with-openssl, so in order for TimescaleDB to compile correctly +# with OpenSSL, Postgres must also have OpenSSL enabled. execute_process( COMMAND ${PG_CONFIG} --configure OUTPUT_VARIABLE PG_CONFIGURE_FLAGS OUTPUT_STRIP_TRAILING_WHITESPACE) string(REGEX MATCH "--with-openssl" PG_USE_OPENSSL "${PG_CONFIGURE_FLAGS}") -if (USE_OPENSSL AND (NOT PG_USE_OPENSSL)) - message(FATAL_ERROR "PostgreSQL was built without OpenSSL support, which TimescaleDB needs for full compatibility. Please rebuild PostgreSQL using `--with-openssl` or if you want to continue without OpenSSL, re-run bootstrap with `-DUSE_OPENSSL=0`") -endif (USE_OPENSSL AND (NOT PG_USE_OPENSSL)) +if(USE_OPENSSL AND (NOT PG_USE_OPENSSL)) + message( + FATAL_ERROR + "PostgreSQL was built without OpenSSL support, which TimescaleDB needs for full compatibility. Please rebuild PostgreSQL using `--with-openssl` or if you want to continue without OpenSSL, re-run bootstrap with `-DUSE_OPENSSL=0`" + ) +endif(USE_OPENSSL AND (NOT PG_USE_OPENSSL)) -if (USE_OPENSSL) +if(USE_OPENSSL) # Try to find a local OpenSSL installation find_package(OpenSSL) - if (NOT OPENSSL_FOUND) - message(FATAL_ERROR "TimescaleDB requires OpenSSL but it wasn't found. If you want to continue without OpenSSL, re-run bootstrap with `-DUSE_OPENSSL=0`") + if(NOT OPENSSL_FOUND) + message( + FATAL_ERROR + "TimescaleDB requires OpenSSL but it wasn't found. If you want to continue without OpenSSL, re-run bootstrap with `-DUSE_OPENSSL=0`" + ) endif(NOT OPENSSL_FOUND) - if (${OPENSSL_VERSION} VERSION_LESS "1.0") + if(${OPENSSL_VERSION} VERSION_LESS "1.0") message(FATAL_ERROR "TimescaleDB requires OpenSSL version 1.0 or greater") - endif () + endif() if(CMAKE_BUILD_TYPE STREQUAL "Debug" AND MSVC) set(_libraries) @@ -475,53 +548,62 @@ if (USE_OPENSSL) endif() message(STATUS "OPENSSL_LIBRARIES: ${OPENSSL_LIBRARIES}") message(STATUS "Using OpenSSL version ${OPENSSL_VERSION}") -endif (USE_OPENSSL) +endif(USE_OPENSSL) -if (CODECOVERAGE) +if(CODECOVERAGE) message(STATUS "Code coverage is enabled.") - # Note that --coverage is synonym for the necessary compiler and - # linker flags for the given compiler. For example, with GCC, - # --coverage translates to -fprofile-arcs -ftest-coverage when - # compiling and -lgcov when linking + # Note that --coverage is synonym for the necessary compiler and linker flags + # for the given compiler. For example, with GCC, --coverage translates to + # -fprofile-arcs -ftest-coverage when compiling and -lgcov when linking add_compile_options(--coverage -O0) add_link_options(--coverage) -endif (CODECOVERAGE) +endif(CODECOVERAGE) # TAP test support option(TAP_CHECKS "Enable TAP test support" ON) -if (TAP_CHECKS) +if(TAP_CHECKS) find_package(Perl 5.8) - if (PERL_FOUND) + if(PERL_FOUND) get_filename_component(PERL_BIN_PATH ${PERL_EXECUTABLE} DIRECTORY) - find_program(PROVE prove - HINTS - ${PERL_BIN_PATH} - PATHS - "/usr/bin" + find_program( + PROVE prove + HINTS ${PERL_BIN_PATH} + PATHS "/usr/bin" NO_DEFAULT_PATH) - if (NOT PROVE) - message(FATAL_ERROR "The prove binary was not found. Disable TAP tests with -DTAP_CHECKS=OFF.") - endif () + if(NOT PROVE) + message( + FATAL_ERROR + "The prove binary was not found. Disable TAP tests with -DTAP_CHECKS=OFF." + ) + endif() # Check for the IPC::Run module - execute_process(COMMAND ${PERL_EXECUTABLE} -MIPC::Run -e "" - ERROR_QUIET RESULT_VARIABLE PERL_MODULE_STATUS) - - if (PERL_MODULE_STATUS) - message(FATAL_ERROR "IPC::Run Perl module not found. Disable TAP tests with -DTAP_CHECKS=OFF.") - endif () - else () - message(FATAL_ERROR "Perl not found. Disable TAP tests with -DTAP_CHECKS=OFF or set -DPERL_EXECUTABLE=. Requires Perl 5.8 or greater (http://perlbrew.pl).") + execute_process( + COMMAND ${PERL_EXECUTABLE} -MIPC::Run -e "" + ERROR_QUIET + RESULT_VARIABLE PERL_MODULE_STATUS) + + if(PERL_MODULE_STATUS) + message( + FATAL_ERROR + "IPC::Run Perl module not found. Disable TAP tests with -DTAP_CHECKS=OFF." + ) + endif() + else() + message( + FATAL_ERROR + "Perl not found. Disable TAP tests with -DTAP_CHECKS=OFF or set -DPERL_EXECUTABLE=. Requires Perl 5.8 or greater (http://perlbrew.pl)." + ) endif() -endif (TAP_CHECKS) +endif(TAP_CHECKS) -if (UNIX) +if(UNIX) add_subdirectory(scripts) -endif (UNIX) +endif(UNIX) add_subdirectory(sql) add_subdirectory(test) @@ -534,15 +616,15 @@ if(NOT APACHE_ONLY) endif() add_custom_target(licensecheck - COMMAND ${PROJECT_SOURCE_DIR}/scripts/check_license_all.sh - ) + COMMAND ${PROJECT_SOURCE_DIR}/scripts/check_license_all.sh) -# This needs to be the last subdirectory so that other targets are -# already defined -if (CODECOVERAGE) +# This needs to be the last subdirectory so that other targets are already +# defined +if(CODECOVERAGE) add_subdirectory(codecov) -endif () +endif() -if (IS_DIRECTORY ${PROJECT_SOURCE_DIR}/.git) - configure_file(${PROJECT_SOURCE_DIR}/scripts/githooks/commit_msg.py ${PROJECT_SOURCE_DIR}/.git/hooks/commit-msg COPYONLY) +if(IS_DIRECTORY ${PROJECT_SOURCE_DIR}/.git) + configure_file(${PROJECT_SOURCE_DIR}/scripts/githooks/commit_msg.py + ${PROJECT_SOURCE_DIR}/.git/hooks/commit-msg COPYONLY) endif() diff --git a/codecov/CMakeLists.txt b/codecov/CMakeLists.txt index 9a87ae63d03..f6f3c743954 100644 --- a/codecov/CMakeLists.txt +++ b/codecov/CMakeLists.txt @@ -1,51 +1,43 @@ # CMake targets for generating code coverage reports # -# Note that the targets in here are not needed to enable code coverage -# on builds. To have builds generate code coverage metadata, one only -# has to enable the --coverage option for the compiler and this is -# done in the top-level CMakeLists.txt so that the option covers all -# build targets in the project. +# Note that the targets in here are not needed to enable code coverage on +# builds. To have builds generate code coverage metadata, one only has to enable +# the --coverage option for the compiler and this is done in the top-level +# CMakeLists.txt so that the option covers all build targets in the project. # -# Given that all dependencies (lcov, genhtml) are installed, and CMake -# is initialized with -DCODECOVERAGE=ON, it should be -# possible to generate a code coverage report by running: +# Given that all dependencies (lcov, genhtml) are installed, and CMake is +# initialized with -DCODECOVERAGE=ON, it should be possible to generate a code +# coverage report by running: # # $ make coverage # -# The report is generated in REPORT_DIR and can be viewed in a web -# browser. +# The report is generated in REPORT_DIR and can be viewed in a web browser. # Find lcov for html output find_program(LCOV lcov) -if (LCOV) +if(LCOV) # Final tracefile for code coverage set(OUTPUT_FILE "timescaledb-codecov.info") # Directory where to generate the HTML report set(REPORT_DIR "codecov-report") - - # The baseline run needs to run before tests to learn what zero - # coverage looks like + # The baseline run needs to run before tests to learn what zero coverage looks + # like add_custom_command( OUTPUT ${OUTPUT_FILE}.base COMMENT "Generating code coverage base file" - COMMAND ${LCOV} - --capture - --initial # Initial run - --no-external # Do not include external source files - --base-directory ${CMAKE_SOURCE_DIR} - --directory ${CMAKE_BINARY_DIR} - --output-file ${OUTPUT_FILE}.base + COMMAND + ${LCOV} --capture --initial # Initial run + --no-external # Do not include external source files + --base-directory ${CMAKE_SOURCE_DIR} --directory ${CMAKE_BINARY_DIR} + --output-file ${OUTPUT_FILE}.base DEPENDS timescaledb-tsl timescaledb timescaledb-loader) - add_custom_target(coverage_base - DEPENDS - timescaledb-tsl - timescaledb - timescaledb-loader - ${OUTPUT_FILE}.base) + add_custom_target( + coverage_base DEPENDS timescaledb-tsl timescaledb timescaledb-loader + ${OUTPUT_FILE}.base) # Ensure baseline file is generated before tests add_dependencies(installcheck coverage_base) @@ -54,51 +46,45 @@ if (LCOV) add_custom_command( OUTPUT ${OUTPUT_FILE}.test COMMENT "Generating code coverage test file" - COMMAND ${LCOV} - --capture - --no-external - --base-directory ${CMAKE_SOURCE_DIR} - --directory ${CMAKE_BINARY_DIR} - --output-file ${OUTPUT_FILE}.test + COMMAND ${LCOV} --capture --no-external --base-directory ${CMAKE_SOURCE_DIR} + --directory ${CMAKE_BINARY_DIR} --output-file ${OUTPUT_FILE}.test DEPENDS ${OUTPUT_FILE}.base coverage_base) # Make sure coverage_test runs after tests (installcheck) finish add_custom_target(coverage_test DEPENDS ${OUTPUT_FILE}.test) add_dependencies(installcheck-post-hook coverage_test) - # Generate the final coverage file by combining the pre and post - # test tracefiles + # Generate the final coverage file by combining the pre and post test + # tracefiles add_custom_command( OUTPUT ${OUTPUT_FILE} COMMENT "Generating final code coverage file" - COMMAND ${LCOV} - --add-tracefile ${OUTPUT_FILE}.base - --add-tracefile ${OUTPUT_FILE}.test - --output-file ${OUTPUT_FILE} + COMMAND ${LCOV} --add-tracefile ${OUTPUT_FILE}.base --add-tracefile + ${OUTPUT_FILE}.test --output-file ${OUTPUT_FILE} DEPENDS ${OUTPUT_FILE}.test coverage_test) add_custom_target(coverage_final DEPENDS ${OUTPUT_FILE}) add_dependencies(coverage_final coverage_test) - # Look for genhtml to produce HTML report. This tool is part of the - # lcov suite, so should be installed if lcov is installed. Thus, - # this is an over-cautious check just in case some distributions - # break these tools up in separate packages. + # Look for genhtml to produce HTML report. This tool is part of the lcov + # suite, so should be installed if lcov is installed. Thus, this is an + # over-cautious check just in case some distributions break these tools up in + # separate packages. find_program(GENHTML genhtml) - if (GENHTML) - message(STATUS "Generate a code coverage report using the 'coverage' target after tests have run.") + if(GENHTML) + message( + STATUS + "Generate a code coverage report using the 'coverage' target after tests have run." + ) add_custom_command( OUTPUT ${REPORT_DIR}/index.html - COMMENT "Generating HTML code coverage report in ${CMAKE_CURRENT_BINARY_DIR}/${REPORT_DIR}" - COMMAND ${GENHTML} - --prefix ${CMAKE_SOURCE_DIR} - --ignore-errors source - --legend - --title "TimescaleDB" - --output-directory ${REPORT_DIR} - ${OUTPUT_FILE} + COMMENT + "Generating HTML code coverage report in ${CMAKE_CURRENT_BINARY_DIR}/${REPORT_DIR}" + COMMAND + ${GENHTML} --prefix ${CMAKE_SOURCE_DIR} --ignore-errors source --legend + --title "TimescaleDB" --output-directory ${REPORT_DIR} ${OUTPUT_FILE} DEPENDS ${OUTPUT_FILE}) add_custom_target(coverage DEPENDS ${REPORT_DIR}/index.html) add_dependencies(coverage coverage_final) @@ -106,10 +92,12 @@ if (LCOV) add_custom_command( TARGET coverage POST_BUILD - COMMENT "Open file://${CMAKE_CURRENT_BINARY_DIR}/${REPORT_DIR}/index.html in a browser to view the report") - else () + COMMENT + "Open file://${CMAKE_CURRENT_BINARY_DIR}/${REPORT_DIR}/index.html in a browser to view the report" + ) + else() message(STATUS "Install genhtml to generate code coverage reports") - endif (GENHTML) -else () + endif(GENHTML) +else() message(STATUS "Install lcov to generate code coverage reports") -endif (LCOV) +endif(LCOV) diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt index 10b45c09e0e..9fc8d3bb851 100644 --- a/scripts/CMakeLists.txt +++ b/scripts/CMakeLists.txt @@ -1,8 +1,11 @@ -find_program(NM NAMES nm PATHS /usr/bin /usr/local/bin /opt/local/bin) +find_program( + NM + NAMES nm + PATHS /usr/bin /usr/local/bin /opt/local/bin) if(NM) message(STATUS "Using nm ${NM}") -else () +else() message(STATUS "Install nm to be able to run export checks") -endif (NM) +endif(NM) configure_file(export_prefix_check.sh.in export_prefix_check.sh @ONLY) diff --git a/scripts/cmake_format_all.sh b/scripts/cmake_format_all.sh new file mode 100755 index 00000000000..7446867bf80 --- /dev/null +++ b/scripts/cmake_format_all.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +SCRIPTDIR=$(cd $(dirname $0); pwd) +BASEDIR=$(dirname $SCRIPTDIR) + +find $BASEDIR -name CMakeLists.txt -exec cmake-format -i {} + +find $BASEDIR/src $BASEDIR/test $BASEDIR/tsl -name '*.cmake' -exec cmake-format -i {} + diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt index cbb44f309b7..a78c8615cea 100644 --- a/sql/CMakeLists.txt +++ b/sql/CMakeLists.txt @@ -2,128 +2,122 @@ set(INSTALL_FILE ${PROJECT_NAME}--${PROJECT_VERSION_MOD}.sql) # Source files that define the schemas and tables for our metadata set(PRE_INSTALL_SOURCE_FILES - pre_install/schemas.sql # Must be first - pre_install/types.pre.sql - pre_install/types.functions.sql - pre_install/types.post.sql # Must be before tables.sql - pre_install/tables.sql - pre_install/insert_data.sql - pre_install/bgw_scheduler_startup.sql - pre_install/fdw_functions.sql - pre_install/timescaledb_fdw.sql -) - -# Things like aggregate functions cannot be REPLACEd and really -# need to be created just once(like PRE_INSTALL_SOURCE_FILES) -# but unlike PRE_INSTALL_SOURCE_FILES these have to be loaded -# after everything else is loaded. -set(IMMUTABLE_API_SOURCE_FILES - aggregates.sql -) + pre_install/schemas.sql # Must be first + pre_install/types.pre.sql + pre_install/types.functions.sql + pre_install/types.post.sql # Must be before tables.sql + pre_install/tables.sql + pre_install/insert_data.sql + pre_install/bgw_scheduler_startup.sql + pre_install/fdw_functions.sql + pre_install/timescaledb_fdw.sql) + +# Things like aggregate functions cannot be REPLACEd and really need to be +# created just once(like PRE_INSTALL_SOURCE_FILES) but unlike +# PRE_INSTALL_SOURCE_FILES these have to be loaded after everything else is +# loaded. +set(IMMUTABLE_API_SOURCE_FILES aggregates.sql) # The rest of the source files defining mostly functions set(SOURCE_FILES - pre_install/types.functions.sql - pre_install/fdw_functions.sql - hypertable.sql - chunk.sql - data_node.sql - ddl_internal.sql - ddl_experimental.sql - util_time.sql - util_internal_table_ddl.sql - chunk_constraint.sql - hypertable_constraint.sql - partitioning.sql - schema_info.sql - ddl_api.sql - ddl_triggers.sql - bookend.sql - time_bucket.sql - version.sql - size_utils.sql - histogram.sql - cache.sql - bgw_scheduler.sql - metadata.sql - dist_internal.sql - views.sql - gapfill.sql - maintenance_utils.sql - partialize_finalize.sql - restoring.sql - job_api.sql - policy_api.sql - policy_internal.sql -) - -# These files should be pre-pended to update scripts so that they are -# executed before anything else during updates -set(PRE_UPDATE_FILES - updates/pre-update.sql -) - -# The POST_UPDATE_FILES should be executed as the last part of -# the update script. -# sets state for executing POST_UPDATE_FILES during ALTER EXTENSION + pre_install/types.functions.sql + pre_install/fdw_functions.sql + hypertable.sql + chunk.sql + data_node.sql + ddl_internal.sql + ddl_experimental.sql + util_time.sql + util_internal_table_ddl.sql + chunk_constraint.sql + hypertable_constraint.sql + partitioning.sql + schema_info.sql + ddl_api.sql + ddl_triggers.sql + bookend.sql + time_bucket.sql + version.sql + size_utils.sql + histogram.sql + cache.sql + bgw_scheduler.sql + metadata.sql + dist_internal.sql + views.sql + gapfill.sql + maintenance_utils.sql + partialize_finalize.sql + restoring.sql + job_api.sql + policy_api.sql + policy_internal.sql) + +# These files should be pre-pended to update scripts so that they are executed +# before anything else during updates +set(PRE_UPDATE_FILES updates/pre-update.sql) + +# The POST_UPDATE_FILES should be executed as the last part of the update +# script. sets state for executing POST_UPDATE_FILES during ALTER EXTENSION set(SET_POST_UPDATE_STAGE updates/set_post_update_stage.sql) set(UNSET_UPDATE_STAGE updates/unset_update_stage.sql) -set(POST_UPDATE_FILES - updates/post-update.sql -) - -# These files represent the modifications that happen in each version, -# excluding new objects or updates to functions. We use them to build -# a path (update script) from every historical version to the current -# version. Note that not all of these files may exist on disk, in case -# they would have no contents. There still needs to be an entry here -# to build an update script for that version. Thus, for every new -# release, an entry should be added here. +set(POST_UPDATE_FILES updates/post-update.sql) + +# These files represent the modifications that happen in each version, excluding +# new objects or updates to functions. We use them to build a path (update +# script) from every historical version to the current version. Note that not +# all of these files may exist on disk, in case they would have no contents. +# There still needs to be an entry here to build an update script for that +# version. Thus, for every new release, an entry should be added here. set(MOD_FILES - updates/1.7.0--1.7.1.sql - updates/1.7.1--1.7.2.sql - updates/1.7.2--1.7.3.sql - updates/1.7.3--1.7.4.sql - updates/1.7.4--1.7.5.sql - updates/1.7.5--2.0.0-rc1.sql - updates/2.0.0-rc1--2.0.0-rc2.sql - updates/2.0.0-rc2--2.0.0-rc3.sql - updates/2.0.0-rc3--2.0.0-rc4.sql - updates/2.0.0-rc4--2.0.0.sql - updates/2.0.0--2.0.1.sql - updates/2.0.1--2.0.2.sql - updates/2.0.2--2.1.0.sql - updates/2.1.0--2.1.1.sql - updates/2.1.1--2.2.0.sql - updates/2.2.0--2.2.1.sql - updates/2.2.1--2.3.0.sql -) + updates/1.7.0--1.7.1.sql + updates/1.7.1--1.7.2.sql + updates/1.7.2--1.7.3.sql + updates/1.7.3--1.7.4.sql + updates/1.7.4--1.7.5.sql + updates/1.7.5--2.0.0-rc1.sql + updates/2.0.0-rc1--2.0.0-rc2.sql + updates/2.0.0-rc2--2.0.0-rc3.sql + updates/2.0.0-rc3--2.0.0-rc4.sql + updates/2.0.0-rc4--2.0.0.sql + updates/2.0.0--2.0.1.sql + updates/2.0.1--2.0.2.sql + updates/2.0.2--2.1.0.sql + updates/2.1.0--2.1.1.sql + updates/2.1.1--2.2.0.sql + updates/2.2.0--2.2.1.sql + updates/2.2.1--2.3.0.sql) set(MODULE_PATHNAME "$libdir/timescaledb-${PROJECT_VERSION_MOD}") set(LOADER_PATHNAME "$libdir/timescaledb") -set(TS_MODULE_PATHNAME ${MODULE_PATHNAME} PARENT_SCOPE) +set(TS_MODULE_PATHNAME + ${MODULE_PATHNAME} + PARENT_SCOPE) -# Function to replace @MODULE_PATHNAME@ in source files, producing an -# output file in the build dir +# Function to replace @MODULE_PATHNAME@ in source files, producing an output +# file in the build dir function(version_files SRC_FILE_LIST OUTPUT_FILE_LIST) set(result "") foreach(unversioned_file ${SRC_FILE_LIST}) set(versioned_file ${unversioned_file}) list(APPEND result ${CMAKE_CURRENT_BINARY_DIR}/${versioned_file}) - if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${unversioned_file}) + if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${unversioned_file}) configure_file(${unversioned_file} ${versioned_file} @ONLY) - endif () + endif() endforeach(unversioned_file) - set(${OUTPUT_FILE_LIST} "${result}" PARENT_SCOPE) + set(${OUTPUT_FILE_LIST} + "${result}" + PARENT_SCOPE) endfunction() -# Create versioned files (replacing MODULE_PATHNAME) in the build -# directory of all our source files +# Create versioned files (replacing MODULE_PATHNAME) in the build directory of +# all our source files version_files("${PRE_UPDATE_FILES}" PRE_UPDATE_FILES_VERSIONED) version_files("${POST_UPDATE_FILES}" POST_UPDATE_FILES_VERSIONED) version_files("${PRE_INSTALL_SOURCE_FILES}" PRE_INSTALL_SOURCE_FILES_VERSIONED) -version_files("${IMMUTABLE_API_SOURCE_FILES}" IMMUTABLE_API_SOURCE_FILES_VERSIONED) +version_files("${IMMUTABLE_API_SOURCE_FILES}" + IMMUTABLE_API_SOURCE_FILES_VERSIONED) version_files("${SOURCE_FILES}" SOURCE_FILES_VERSIONED) version_files("${MOD_FILES}" MOD_FILES_VERSIONED) version_files("updates/latest-dev.sql" LASTEST_MOD_VERSIONED) @@ -131,60 +125,64 @@ version_files("notice.sql" NOTICE_FILE) # Function to concatenate all files in SRC_FILE_LIST into file OUTPUT_FILE function(cat_files SRC_FILE_LIST OUTPUT_FILE) - if (WIN32) - # Make list of files into string of files separated by "+" - # to make Windows copy concatenate them + if(WIN32) + # Make list of files into string of files separated by "+" to make Windows + # copy concatenate them file(TO_NATIVE_PATH "${SRC_FILE_LIST}" SRC_FILE_LIST_NATIVE) string(REPLACE ";" ";+;" SQL_LIST_JOINED "${SRC_FILE_LIST_NATIVE}") file(TO_NATIVE_PATH "${OUTPUT_FILE}" OUTPUT_FILE_NATIVE) set(CAT_CMD copy /B /y ${SQL_LIST_JOINED} "\"${OUTPUT_FILE_NATIVE}\"" >NUL) - else () + else() set(CAT_CMD cat ${SRC_FILE_LIST} > ${OUTPUT_FILE}) - endif () + endif() add_custom_command( OUTPUT ${OUTPUT_FILE} DEPENDS ${SRC_FILE_LIST} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMMAND ${CAT_CMD} - COMMENT "Generating ${OUTPUT_FILE}" - ) + COMMENT "Generating ${OUTPUT_FILE}") endfunction() # Generate the extension file used with CREATE EXTENSION cat_files( "${PRE_INSTALL_SOURCE_FILES_VERSIONED};${SOURCE_FILES_VERSIONED};${IMMUTABLE_API_SOURCE_FILES_VERSIONED};${NOTICE_FILE}" - ${CMAKE_CURRENT_BINARY_DIR}/${INSTALL_FILE} -) -add_custom_target(sqlfile ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${INSTALL_FILE}) + ${CMAKE_CURRENT_BINARY_DIR}/${INSTALL_FILE}) +add_custom_target(sqlfile ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${INSTALL_FILE}) # Generate the update files used with ALTER EXTENSION UPDATE -set(MOD_FILE_REGEX "([0-9]+\\.[0-9]+\\.*[0-9]+[-a-z0-9]*)--([0-9]+\\.[0-9]+\\.*[0-9]+[-a-z0-9]*).sql") +set(MOD_FILE_REGEX + "([0-9]+\\.[0-9]+\\.*[0-9]+[-a-z0-9]*)--([0-9]+\\.[0-9]+\\.*[0-9]+[-a-z0-9]*).sql" +) # We'd like to process the updates in reverse (descending) order -if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/updates/${UPDATE_FROM_VERSION}--${PROJECT_VERSION_MOD}.sql") +if(EXISTS + "${CMAKE_CURRENT_SOURCE_DIR}/updates/${UPDATE_FROM_VERSION}--${PROJECT_VERSION_MOD}.sql" +) set(MOD_FILES_LIST ${MOD_FILES_VERSIONED}) else() - set(MOD_FILES_LIST "${MOD_FILES_VERSIONED};updates/${UPDATE_FROM_VERSION}--${PROJECT_VERSION_MOD}.sql") + set(MOD_FILES_LIST + "${MOD_FILES_VERSIONED};updates/${UPDATE_FROM_VERSION}--${PROJECT_VERSION_MOD}.sql" + ) endif() list(REVERSE MOD_FILES_LIST) -# Variable that will hold the list of update scripts from every -# previous version to the current version +# Variable that will hold the list of update scripts from every previous version +# to the current version set(UPDATE_SCRIPTS "") -# A list of current modfiles. We append to this list for every -# previous version that moves us further away from the current -# version, thus making the update path longer as we move back in -# history +# A list of current modfiles. We append to this list for every previous version +# that moves us further away from the current version, thus making the update +# path longer as we move back in history set(CURR_MOD_FILES "${LASTEST_MOD_VERSIONED}") # Now loop through the modfiles and generate the update files foreach(transition_mod_file ${MOD_FILES_LIST}) - if (NOT (${transition_mod_file} MATCHES ${MOD_FILE_REGEX})) + if(NOT (${transition_mod_file} MATCHES ${MOD_FILE_REGEX})) message(FATAL_ERROR "Cannot parse update file name ${mod_file}") - endif () + endif() set(START_VERSION ${CMAKE_MATCH_1}) set(END_VERSION ${CMAKE_MATCH_2}) @@ -192,35 +190,37 @@ foreach(transition_mod_file ${MOD_FILES_LIST}) set(POST_FILES_PROCESSED ${POST_UPDATE_FILES_VERSIONED}.processed) cat_files( "${SET_POST_UPDATE_STAGE};${POST_UPDATE_FILES_VERSIONED};${UNSET_UPDATE_STAGE}" - ${POST_FILES_PROCESSED} - ) + ${POST_FILES_PROCESSED}) # Check for version-specific update code with fixes - if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/updates/${START_VERSION}.sql) + if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/updates/${START_VERSION}.sql) version_files("updates/${START_VERSION}.sql" ORIGIN_MOD_FILE) list(APPEND PRE_FILES ${ORIGIN_MOD_FILE}) - endif () + endif() - # There might not have been any changes in the modfile, in which - # case the modfile need not be present - if (EXISTS ${transition_mod_file}) - # Prepend the modfile as we are moving through the versions in - # descending order + # There might not have been any changes in the modfile, in which case the + # modfile need not be present + if(EXISTS ${transition_mod_file}) + # Prepend the modfile as we are moving through the versions in descending + # order list(INSERT CURR_MOD_FILES 0 ${transition_mod_file}) - endif () + endif() - set(UPDATE_SCRIPT ${CMAKE_CURRENT_BINARY_DIR}/timescaledb--${START_VERSION}--${PROJECT_VERSION_MOD}.sql) + set(UPDATE_SCRIPT + ${CMAKE_CURRENT_BINARY_DIR}/timescaledb--${START_VERSION}--${PROJECT_VERSION_MOD}.sql + ) list(APPEND UPDATE_SCRIPTS ${UPDATE_SCRIPT}) - if (CURR_MOD_FILES) - cat_files("${PRE_FILES};${CURR_MOD_FILES};${SOURCE_FILES_VERSIONED};${POST_FILES_PROCESSED}" ${UPDATE_SCRIPT}) - else () - cat_files("${PRE_FILES};${SOURCE_FILES_VERSIONED};${POST_FILES_PROCESSED}" ${UPDATE_SCRIPT}) - endif () + if(CURR_MOD_FILES) + cat_files( + "${PRE_FILES};${CURR_MOD_FILES};${SOURCE_FILES_VERSIONED};${POST_FILES_PROCESSED}" + ${UPDATE_SCRIPT}) + else() + cat_files("${PRE_FILES};${SOURCE_FILES_VERSIONED};${POST_FILES_PROCESSED}" + ${UPDATE_SCRIPT}) + endif() endforeach(transition_mod_file) add_custom_target(sqlupdatescripts ALL DEPENDS ${UPDATE_SCRIPTS}) # Install target for the extension file and update scripts -install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/${INSTALL_FILE} - ${UPDATE_SCRIPTS} - DESTINATION "${PG_SHAREDIR}/extension") +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${INSTALL_FILE} ${UPDATE_SCRIPTS} + DESTINATION "${PG_SHAREDIR}/extension") diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 8260969844b..77ebc9987a3 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,99 +1,96 @@ set(SOURCES - agg_bookend.c - func_cache.c - cache.c - cache_invalidate.c - catalog.c - continuous_agg.c - chunk.c - chunk_adaptive.c - chunk_constraint.c - chunk_index.c - chunk_data_node.c - constraint.c - cross_module_fn.c - copy.c - compression_chunk_size.c - compression_with_clause.c - dimension.c - dimension_slice.c - dimension_vector.c - estimate.c - event_trigger.c - extension.c - gapfill.c - guc.c - histogram.c - hypercube.c - hypertable.c - hypertable_cache.c - hypertable_compression.c - hypertable_restrict_info.c - hypertable_data_node.c - indexing.c - init.c - metadata.c - jsonb_utils.c - license_guc.c - partitioning.c - planner.c - plan_expand_hypertable.c - plan_add_hashagg.c - plan_agg_bookend.c - plan_partialize.c - process_utility.c - scanner.c - scan_iterator.c - sort_transform.c - subspace_store.c - tablespace.c - time_bucket.c - time_utils.c - custom_type_cache.c - trigger.c - utils.c - version.c - with_clause_parser.c -) + agg_bookend.c + func_cache.c + cache.c + cache_invalidate.c + catalog.c + continuous_agg.c + chunk.c + chunk_adaptive.c + chunk_constraint.c + chunk_index.c + chunk_data_node.c + constraint.c + cross_module_fn.c + copy.c + compression_chunk_size.c + compression_with_clause.c + dimension.c + dimension_slice.c + dimension_vector.c + estimate.c + event_trigger.c + extension.c + gapfill.c + guc.c + histogram.c + hypercube.c + hypertable.c + hypertable_cache.c + hypertable_compression.c + hypertable_restrict_info.c + hypertable_data_node.c + indexing.c + init.c + metadata.c + jsonb_utils.c + license_guc.c + partitioning.c + planner.c + plan_expand_hypertable.c + plan_add_hashagg.c + plan_agg_bookend.c + plan_partialize.c + process_utility.c + scanner.c + scan_iterator.c + sort_transform.c + subspace_store.c + tablespace.c + time_bucket.c + time_utils.c + custom_type_cache.c + trigger.c + utils.c + version.c + with_clause_parser.c) # Add test source code in Debug builds -if (CMAKE_BUILD_TYPE MATCHES Debug) +if(CMAKE_BUILD_TYPE MATCHES Debug) set(TS_DEBUG 1) set(DEBUG 1) - list(APPEND SOURCES - debug_wait.c - debug_guc.c) -endif (CMAKE_BUILD_TYPE MATCHES Debug) + list(APPEND SOURCES debug_wait.c debug_guc.c) +endif(CMAKE_BUILD_TYPE MATCHES Debug) include(build-defs.cmake) configure_file(gitcommit.h.in gitcommit.h) -if (CMAKE_BUILD_TYPE MATCHES Debug) - add_library(${PROJECT_NAME} MODULE ${SOURCES} ${GITCOMMIT_H} $) -else () +if(CMAKE_BUILD_TYPE MATCHES Debug) + add_library(${PROJECT_NAME} MODULE ${SOURCES} ${GITCOMMIT_H} + $) +else() add_library(${PROJECT_NAME} MODULE ${SOURCES} ${GITCOMMIT_H}) -endif () +endif() -if (SEND_TELEMETRY_DEFAULT) +if(SEND_TELEMETRY_DEFAULT) set(TELEMETRY_DEFAULT TELEMETRY_BASIC) -else () +else() set(TELEMETRY_DEFAULT TELEMETRY_OFF) -endif () +endif() -set_target_properties(${PROJECT_NAME} PROPERTIES - OUTPUT_NAME ${PROJECT_NAME}-${PROJECT_VERSION_MOD} - PREFIX "") +set_target_properties( + ${PROJECT_NAME} PROPERTIES OUTPUT_NAME ${PROJECT_NAME}-${PROJECT_VERSION_MOD} + PREFIX "") -install( - TARGETS ${PROJECT_NAME} - DESTINATION ${PG_PKGLIBDIR}) +install(TARGETS ${PROJECT_NAME} DESTINATION ${PG_PKGLIBDIR}) -if (USE_OPENSSL) +if(USE_OPENSSL) set(TS_USE_OPENSSL ${USE_OPENSSL}) - target_include_directories(${PROJECT_NAME} SYSTEM PUBLIC ${OPENSSL_INCLUDE_DIR}) + target_include_directories(${PROJECT_NAME} SYSTEM + PUBLIC ${OPENSSL_INCLUDE_DIR}) target_link_libraries(${PROJECT_NAME} ${OPENSSL_LIBRARIES}) -endif (USE_OPENSSL) +endif(USE_OPENSSL) configure_file(config.h.in config.h) diff --git a/src/bgw/CMakeLists.txt b/src/bgw/CMakeLists.txt index 12a7573e793..10e30dfb9a2 100644 --- a/src/bgw/CMakeLists.txt +++ b/src/bgw/CMakeLists.txt @@ -1,8 +1,5 @@ set(SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/job.c - ${CMAKE_CURRENT_SOURCE_DIR}/job_stat.c - ${CMAKE_CURRENT_SOURCE_DIR}/launcher_interface.c - ${CMAKE_CURRENT_SOURCE_DIR}/scheduler.c - ${CMAKE_CURRENT_SOURCE_DIR}/timer.c -) + ${CMAKE_CURRENT_SOURCE_DIR}/job.c ${CMAKE_CURRENT_SOURCE_DIR}/job_stat.c + ${CMAKE_CURRENT_SOURCE_DIR}/launcher_interface.c + ${CMAKE_CURRENT_SOURCE_DIR}/scheduler.c ${CMAKE_CURRENT_SOURCE_DIR}/timer.c) target_sources(${PROJECT_NAME} PRIVATE ${SOURCES}) diff --git a/src/bgw_policy/CMakeLists.txt b/src/bgw_policy/CMakeLists.txt index 7688e166d9f..021bf224f49 100644 --- a/src/bgw_policy/CMakeLists.txt +++ b/src/bgw_policy/CMakeLists.txt @@ -1,5 +1,3 @@ -set(SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/policy.c - ${CMAKE_CURRENT_SOURCE_DIR}/chunk_stats.c -) +set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/policy.c + ${CMAKE_CURRENT_SOURCE_DIR}/chunk_stats.c) target_sources(${PROJECT_NAME} PRIVATE ${SOURCES}) diff --git a/src/build-defs.cmake b/src/build-defs.cmake index 838bc0f2181..041d6d8b362 100644 --- a/src/build-defs.cmake +++ b/src/build-defs.cmake @@ -10,18 +10,21 @@ if(UNIX) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${PG_CFLAGS}") set(CMAKE_CPP_FLAGS "${CMAKE_CPP_FLAGS} ${PG_CPPFLAGS}") set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g") -endif () +endif() if(APPLE) - set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -multiply_defined suppress") - set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -multiply_defined suppress -Wl,-undefined,dynamic_lookup -bundle_loader ${PG_BINDIR}/postgres") -elseif (WIN32) + set(CMAKE_SHARED_LINKER_FLAGS + "${CMAKE_SHARED_LINKER_FLAGS} -multiply_defined suppress") + set(CMAKE_MODULE_LINKER_FLAGS + "${CMAKE_MODULE_LINKER_FLAGS} -multiply_defined suppress -Wl,-undefined,dynamic_lookup -bundle_loader ${PG_BINDIR}/postgres" + ) +elseif(WIN32) set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /MANIFEST:NO") set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} /MANIFEST:NO") endif() -# PG_LDFLAGS can have strange values if not found, so we just add the -# flags if they are defined. +# PG_LDFLAGS can have strange values if not found, so we just add the flags if +# they are defined. if(PG_LDFLAGS) set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${PG_LDFLAGS}") set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${PG_LDFLAGS}") @@ -34,21 +37,24 @@ endif() include_directories(${PROJECT_SOURCE_DIR}/src ${PROJECT_BINARY_DIR}/src) include_directories(SYSTEM ${PG_INCLUDEDIR_SERVER}) -# Only Windows and FreeBSD need the base include/ dir instead of include/server/, and including -# both causes problems on Ubuntu where they frequently get out of sync -if (WIN32 OR (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")) +# Only Windows and FreeBSD need the base include/ dir instead of +# include/server/, and including both causes problems on Ubuntu where they +# frequently get out of sync +if(WIN32 OR (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")) include_directories(SYSTEM ${PG_INCLUDEDIR}) -endif () +endif() -if (WIN32) - set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${PG_LIBDIR}/postgres.lib ws2_32.lib Version.lib") +if(WIN32) + set(CMAKE_MODULE_LINKER_FLAGS + "${CMAKE_MODULE_LINKER_FLAGS} ${PG_LIBDIR}/postgres.lib ws2_32.lib Version.lib" + ) set(CMAKE_C_FLAGS "-D_CRT_SECURE_NO_WARNINGS") include_directories(SYSTEM ${PG_INCLUDEDIR_SERVER}/port/win32) - if (MSVC) + if(MSVC) include_directories(SYSTEM ${PG_INCLUDEDIR_SERVER}/port/win32_msvc) - endif (MSVC) -endif (WIN32) + endif(MSVC) +endif(WIN32) # Name of library with test-specific code set(TESTS_LIB_NAME ${PROJECT_NAME}-tests) diff --git a/src/chunk_append/CMakeLists.txt b/src/chunk_append/CMakeLists.txt index efd84b35b34..fcb760d64a2 100644 --- a/src/chunk_append/CMakeLists.txt +++ b/src/chunk_append/CMakeLists.txt @@ -1,9 +1,8 @@ # Add all *.c to sources in upperlevel directory set(SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/chunk_append.c - ${CMAKE_CURRENT_SOURCE_DIR}/exec.c - ${CMAKE_CURRENT_SOURCE_DIR}/explain.c - ${CMAKE_CURRENT_SOURCE_DIR}/planner.c - ${CMAKE_CURRENT_SOURCE_DIR}/transform.c -) + ${CMAKE_CURRENT_SOURCE_DIR}/chunk_append.c + ${CMAKE_CURRENT_SOURCE_DIR}/exec.c + ${CMAKE_CURRENT_SOURCE_DIR}/explain.c + ${CMAKE_CURRENT_SOURCE_DIR}/planner.c + ${CMAKE_CURRENT_SOURCE_DIR}/transform.c) target_sources(${PROJECT_NAME} PRIVATE ${SOURCES}) diff --git a/src/import/CMakeLists.txt b/src/import/CMakeLists.txt index 72b8c8081d8..2bd74299a64 100644 --- a/src/import/CMakeLists.txt +++ b/src/import/CMakeLists.txt @@ -1,6 +1,4 @@ -set(SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/planner.c - ${CMAKE_CURRENT_SOURCE_DIR}/allpaths.c -) +set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/planner.c + ${CMAKE_CURRENT_SOURCE_DIR}/allpaths.c) target_sources(${PROJECT_NAME} PRIVATE ${SOURCES}) diff --git a/src/loader/CMakeLists.txt b/src/loader/CMakeLists.txt index f15e054e1af..330c938ad0d 100644 --- a/src/loader/CMakeLists.txt +++ b/src/loader/CMakeLists.txt @@ -1,30 +1,24 @@ set(SOURCES - loader.c - bgw_message_queue.c - bgw_counter.c - bgw_launcher.c - bgw_interface.c - lwlocks.c - seclabel.c -) + loader.c + bgw_message_queue.c + bgw_counter.c + bgw_launcher.c + bgw_interface.c + lwlocks.c + seclabel.c) -set(TEST_SOURCES - ${PROJECT_SOURCE_DIR}/test/src/symbol_conflict.c -) +set(TEST_SOURCES ${PROJECT_SOURCE_DIR}/test/src/symbol_conflict.c) add_library(${PROJECT_NAME}-loader MODULE ${SOURCES}) -if (CMAKE_BUILD_TYPE MATCHES Debug) +if(CMAKE_BUILD_TYPE MATCHES Debug) # Include code for tests in Debug build target_sources(${PROJECT_NAME}-loader PRIVATE ${TEST_SOURCES}) # This define generates extension-specific code for symbol conflict testing target_compile_definitions(${PROJECT_NAME}-loader PUBLIC MODULE_NAME=loader) -endif (CMAKE_BUILD_TYPE MATCHES Debug) +endif(CMAKE_BUILD_TYPE MATCHES Debug) -set_target_properties(${PROJECT_NAME}-loader PROPERTIES - OUTPUT_NAME ${PROJECT_NAME} - PREFIX "") +set_target_properties(${PROJECT_NAME}-loader + PROPERTIES OUTPUT_NAME ${PROJECT_NAME} PREFIX "") -install( - TARGETS ${PROJECT_NAME}-loader - DESTINATION ${PG_PKGLIBDIR}) +install(TARGETS ${PROJECT_NAME}-loader DESTINATION ${PG_PKGLIBDIR}) diff --git a/src/net/CMakeLists.txt b/src/net/CMakeLists.txt index 67f0eb03468..65f4083b0fd 100644 --- a/src/net/CMakeLists.txt +++ b/src/net/CMakeLists.txt @@ -1,13 +1,12 @@ set(SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/conn.c - ${CMAKE_CURRENT_SOURCE_DIR}/conn_plain.c - ${CMAKE_CURRENT_SOURCE_DIR}/http.c - ${CMAKE_CURRENT_SOURCE_DIR}/http_response.c - ${CMAKE_CURRENT_SOURCE_DIR}/http_request.c -) + ${CMAKE_CURRENT_SOURCE_DIR}/conn.c + ${CMAKE_CURRENT_SOURCE_DIR}/conn_plain.c + ${CMAKE_CURRENT_SOURCE_DIR}/http.c + ${CMAKE_CURRENT_SOURCE_DIR}/http_response.c + ${CMAKE_CURRENT_SOURCE_DIR}/http_request.c) -if (USE_OPENSSL) +if(USE_OPENSSL) list(APPEND SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/conn_ssl.c) -endif (USE_OPENSSL) +endif(USE_OPENSSL) target_sources(${PROJECT_NAME} PRIVATE ${SOURCES}) diff --git a/src/nodes/CMakeLists.txt b/src/nodes/CMakeLists.txt index e9790dff25e..3a73cdc3d47 100644 --- a/src/nodes/CMakeLists.txt +++ b/src/nodes/CMakeLists.txt @@ -1,9 +1,8 @@ set(SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/chunk_dispatch.c - ${CMAKE_CURRENT_SOURCE_DIR}/chunk_dispatch_plan.c - ${CMAKE_CURRENT_SOURCE_DIR}/chunk_dispatch_state.c - ${CMAKE_CURRENT_SOURCE_DIR}/chunk_insert_state.c - ${CMAKE_CURRENT_SOURCE_DIR}/hypertable_insert.c -) + ${CMAKE_CURRENT_SOURCE_DIR}/chunk_dispatch.c + ${CMAKE_CURRENT_SOURCE_DIR}/chunk_dispatch_plan.c + ${CMAKE_CURRENT_SOURCE_DIR}/chunk_dispatch_state.c + ${CMAKE_CURRENT_SOURCE_DIR}/chunk_insert_state.c + ${CMAKE_CURRENT_SOURCE_DIR}/hypertable_insert.c) target_sources(${PROJECT_NAME} PRIVATE ${SOURCES}) add_subdirectory(constraint_aware_append) diff --git a/src/nodes/constraint_aware_append/CMakeLists.txt b/src/nodes/constraint_aware_append/CMakeLists.txt index efd2cdc7e88..fcb62550e54 100644 --- a/src/nodes/constraint_aware_append/CMakeLists.txt +++ b/src/nodes/constraint_aware_append/CMakeLists.txt @@ -1,4 +1,2 @@ -set(SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/constraint_aware_append.c -) +set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/constraint_aware_append.c) target_sources(${PROJECT_NAME} PRIVATE ${SOURCES}) diff --git a/src/telemetry/CMakeLists.txt b/src/telemetry/CMakeLists.txt index 7ec08e22f21..4a40153c181 100644 --- a/src/telemetry/CMakeLists.txt +++ b/src/telemetry/CMakeLists.txt @@ -1,7 +1,6 @@ # Add all *.c to sources in upperlevel directory set(SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/uuid.c - ${CMAKE_CURRENT_SOURCE_DIR}/telemetry_metadata.c - ${CMAKE_CURRENT_SOURCE_DIR}/telemetry.c -) + ${CMAKE_CURRENT_SOURCE_DIR}/uuid.c + ${CMAKE_CURRENT_SOURCE_DIR}/telemetry_metadata.c + ${CMAKE_CURRENT_SOURCE_DIR}/telemetry.c) target_sources(${PROJECT_NAME} PRIVATE ${SOURCES}) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index f8cd6e2ef40..0aac5e49c05 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,94 +1,94 @@ set(PRIMARY_TEST_DIR ${CMAKE_CURRENT_LIST_DIR}) -set(PRIMARY_TEST_DIR ${CMAKE_CURRENT_LIST_DIR} PARENT_SCOPE) +set(PRIMARY_TEST_DIR + ${CMAKE_CURRENT_LIST_DIR} + PARENT_SCOPE) set(_local_install_checks) set(_install_checks) # Testing support find_program(PG_REGRESS pg_regress - HINTS - "${PG_BINDIR}" - "${PG_PKGLIBDIR}/pgxs/src/test/regress/") + HINTS "${PG_BINDIR}" "${PG_PKGLIBDIR}/pgxs/src/test/regress/") -find_program(PG_ISOLATION_REGRESS +find_program( + PG_ISOLATION_REGRESS NAMES pg_isolation_regress - HINTS - ${PG_BINDIR} - ${PG_PKGLIBDIR}/pgxs/src/test/isolation - ${PG_SOURCE_DIR}/src/test/isolation - ${BINDIR}) + HINTS ${PG_BINDIR} ${PG_PKGLIBDIR}/pgxs/src/test/isolation + ${PG_SOURCE_DIR}/src/test/isolation ${BINDIR}) include(test-defs.cmake) if(PG_REGRESS) message(STATUS "Using pg_regress ${PG_REGRESS}") - add_custom_target(regresscheck - COMMAND ${CMAKE_COMMAND} -E env - ${PG_REGRESS_ENV} - TEST_PGPORT=${TEST_PGPORT_TEMP_INSTANCE} - ${CMAKE_CURRENT_SOURCE_DIR}/pg_regress.sh - ${PG_REGRESS_OPTS_BASE} - ${PG_REGRESS_OPTS_EXTRA} - ${PG_REGRESS_OPTS_INOUT} - ${PG_REGRESS_OPTS_TEMP_INSTANCE} + add_custom_target( + regresscheck + COMMAND + ${CMAKE_COMMAND} -E env ${PG_REGRESS_ENV} + TEST_PGPORT=${TEST_PGPORT_TEMP_INSTANCE} + ${CMAKE_CURRENT_SOURCE_DIR}/pg_regress.sh ${PG_REGRESS_OPTS_BASE} + ${PG_REGRESS_OPTS_EXTRA} ${PG_REGRESS_OPTS_INOUT} + ${PG_REGRESS_OPTS_TEMP_INSTANCE} USES_TERMINAL) - add_custom_target(regresschecklocal - COMMAND ${CMAKE_COMMAND} -E env - ${PG_REGRESS_ENV} - TEST_PGPORT=${TEST_PGPORT_LOCAL} - ${CMAKE_CURRENT_SOURCE_DIR}/pg_regress.sh - ${PG_REGRESS_OPTS_BASE} - ${PG_REGRESS_OPTS_EXTRA} - ${PG_REGRESS_OPTS_INOUT} - ${PG_REGRESS_OPTS_LOCAL_INSTANCE} + add_custom_target( + regresschecklocal + COMMAND + ${CMAKE_COMMAND} -E env ${PG_REGRESS_ENV} TEST_PGPORT=${TEST_PGPORT_LOCAL} + ${CMAKE_CURRENT_SOURCE_DIR}/pg_regress.sh ${PG_REGRESS_OPTS_BASE} + ${PG_REGRESS_OPTS_EXTRA} ${PG_REGRESS_OPTS_INOUT} + ${PG_REGRESS_OPTS_LOCAL_INSTANCE} USES_TERMINAL) list(APPEND _local_install_checks regresschecklocal) list(APPEND _install_checks regresscheck) elseif(REGRESS_CHECKS) - message(FATAL_ERROR - "Program 'pg_regress' not found, but regressions checks were required.\n" - "Skip regression checks using -DREGRESS_CHECKS=OFF") + message( + FATAL_ERROR + "Program 'pg_regress' not found, but regressions checks were required.\n" + "Skip regression checks using -DREGRESS_CHECKS=OFF") else() - message(STATUS "Skipping isolation regress checks since program 'pg_regress' was not found") + message( + STATUS + "Skipping isolation regress checks since program 'pg_regress' was not found" + ) endif() if(PG_ISOLATION_REGRESS) message(STATUS "Using pg_isolation_regress ${PG_ISOLATION_REGRESS}") - add_custom_target(isolationcheck - COMMAND ${CMAKE_COMMAND} -E env - ${PG_ISOLATION_REGRESS_ENV} - SPECS_DIR=${CMAKE_CURRENT_SOURCE_DIR}/isolation/specs - TEST_PGPORT=${TEST_PGPORT_TEMP_INSTANCE} - ${CMAKE_CURRENT_SOURCE_DIR}/pg_regress.sh - ${PG_REGRESS_OPTS_BASE} - ${PG_ISOLATION_REGRESS_OPTS_EXTRA} - ${PG_ISOLATION_REGRESS_OPTS_INOUT} - ${PG_REGRESS_OPTS_TEMP_INSTANCE} + add_custom_target( + isolationcheck + COMMAND + ${CMAKE_COMMAND} -E env ${PG_ISOLATION_REGRESS_ENV} + SPECS_DIR=${CMAKE_CURRENT_SOURCE_DIR}/isolation/specs + TEST_PGPORT=${TEST_PGPORT_TEMP_INSTANCE} + ${CMAKE_CURRENT_SOURCE_DIR}/pg_regress.sh ${PG_REGRESS_OPTS_BASE} + ${PG_ISOLATION_REGRESS_OPTS_EXTRA} ${PG_ISOLATION_REGRESS_OPTS_INOUT} + ${PG_REGRESS_OPTS_TEMP_INSTANCE} USES_TERMINAL) - add_custom_target(isolationchecklocal - COMMAND ${CMAKE_COMMAND} -E env - ${PG_ISOLATION_REGRESS_ENV} - SPECS_DIR=${CMAKE_CURRENT_SOURCE_DIR}/isolation/specs - TEST_PGPORT=${TEST_PGPORT_LOCAL} - ${CMAKE_CURRENT_SOURCE_DIR}/pg_regress.sh - ${PG_REGRESS_OPTS_BASE} - ${PG_ISOLATION_REGRESS_OPTS_EXTRA} - ${PG_ISOLATION_REGRESS_OPTS_INOUT} - ${PG_REGRESS_OPTS_LOCAL_INSTANCE} + add_custom_target( + isolationchecklocal + COMMAND + ${CMAKE_COMMAND} -E env ${PG_ISOLATION_REGRESS_ENV} + SPECS_DIR=${CMAKE_CURRENT_SOURCE_DIR}/isolation/specs + TEST_PGPORT=${TEST_PGPORT_LOCAL} ${CMAKE_CURRENT_SOURCE_DIR}/pg_regress.sh + ${PG_REGRESS_OPTS_BASE} ${PG_ISOLATION_REGRESS_OPTS_EXTRA} + ${PG_ISOLATION_REGRESS_OPTS_INOUT} ${PG_REGRESS_OPTS_LOCAL_INSTANCE} USES_TERMINAL) list(APPEND _local_install_checks isolationchecklocal) list(APPEND _install_checks isolationcheck) elseif(REGRESS_CHECKS) - message(FATAL_ERROR - "Program 'pg_isolation_regress' not found, but regressions checks were required.\n" - "Skip regression checks using -DREGRESS_CHECKS=OFF") + message( + FATAL_ERROR + "Program 'pg_isolation_regress' not found, but regressions checks were required.\n" + "Skip regression checks using -DREGRESS_CHECKS=OFF") else() - message(STATUS "Skipping isolation regress checks since program 'pg_isolation_regress' was not found") + message( + STATUS + "Skipping isolation regress checks since program 'pg_isolation_regress' was not found" + ) endif() # installcheck starts up new temporary instances for testing code @@ -99,15 +99,15 @@ endif() if(_install_checks) add_custom_target(installcheck DEPENDS ${_install_checks}) - # Define a post test hook that is invoked after the installcheck - # target finishes. One can use add_dependencies on post hook target - # to run other targets after tests complete. This is used, e.g., by - # code coverage. + # Define a post test hook that is invoked after the installcheck target + # finishes. One can use add_dependencies on post hook target to run other + # targets after tests complete. This is used, e.g., by code coverage. add_custom_target(installcheck-post-hook COMMENT "Post test hook") add_custom_command( TARGET installcheck POST_BUILD - COMMAND cmake --build ${CMAKE_CURRENT_BINARY_DIR} --target installcheck-post-hook) + COMMAND cmake --build ${CMAKE_CURRENT_BINARY_DIR} --target + installcheck-post-hook) endif() # installchecklocal tests against an existing postgres instance @@ -118,10 +118,10 @@ endif() add_subdirectory(sql) add_subdirectory(isolation) -if (PG_SOURCE_DIR) +if(PG_SOURCE_DIR) add_subdirectory(pgtest) -endif (PG_SOURCE_DIR) +endif(PG_SOURCE_DIR) -if (CMAKE_BUILD_TYPE MATCHES Debug) +if(CMAKE_BUILD_TYPE MATCHES Debug) add_subdirectory(src) -endif (CMAKE_BUILD_TYPE MATCHES Debug) +endif(CMAKE_BUILD_TYPE MATCHES Debug) diff --git a/test/isolation/specs/CMakeLists.txt b/test/isolation/specs/CMakeLists.txt index 275a4366f5c..848cc083a01 100644 --- a/test/isolation/specs/CMakeLists.txt +++ b/test/isolation/specs/CMakeLists.txt @@ -1,4 +1,3 @@ - set(TEST_FILES deadlock_dropchunks_select.spec insert_dropchunks_race.spec @@ -11,15 +10,12 @@ set(TEST_FILES file(REMOVE ${ISOLATION_TEST_SCHEDULE}) -set(TEST_TEMPLATES -) +set(TEST_TEMPLATES) -set(TEST_TEMPLATES_DEBUG - dropchunks_race.spec.in - multi_transaction_indexing.spec.in -) +set(TEST_TEMPLATES_DEBUG dropchunks_race.spec.in + multi_transaction_indexing.spec.in) -if (CMAKE_BUILD_TYPE MATCHES Debug) +if(CMAKE_BUILD_TYPE MATCHES Debug) list(APPEND TEST_TEMPLATES ${TEST_TEMPLATES_DEBUG}) endif(CMAKE_BUILD_TYPE MATCHES Debug) @@ -31,6 +27,6 @@ foreach(TEMPLATE_FILE ${TEST_TEMPLATES}) endforeach(TEMPLATE_FILE) foreach(TEST_FILE ${TEST_FILES}) - string(REGEX REPLACE "(.+)\.spec" "\\1" TESTS_TO_RUN ${TEST_FILE}) - file(APPEND ${ISOLATION_TEST_SCHEDULE} "test: ${TESTS_TO_RUN}\n") + string(REGEX REPLACE "(.+)\.spec" "\\1" TESTS_TO_RUN ${TEST_FILE}) + file(APPEND ${ISOLATION_TEST_SCHEDULE} "test: ${TESTS_TO_RUN}\n") endforeach(TEST_FILE) diff --git a/test/pgtest/CMakeLists.txt b/test/pgtest/CMakeLists.txt index db59f754e06..ee822bd4aef 100644 --- a/test/pgtest/CMakeLists.txt +++ b/test/pgtest/CMakeLists.txt @@ -1,39 +1,30 @@ set(PG_REGRESS_DIR - ${PG_SOURCE_DIR}/src/test/regress - CACHE PATH - "Path to PostgreSQL's regress directory") + ${PG_SOURCE_DIR}/src/test/regress + CACHE PATH "Path to PostgreSQL's regress directory") -# Copy the input and output files from PostgreSQL's test suite. The -# test suite generates some SQL scripts and output files from template -# source files and require directories to be colocated -file(COPY - ${PG_REGRESS_DIR}/data - ${PG_REGRESS_DIR}/input - ${PG_REGRESS_DIR}/output - ${PG_REGRESS_DIR}/sql - ${PG_REGRESS_DIR}/expected - DESTINATION - ${CMAKE_CURRENT_BINARY_DIR}) +# Copy the input and output files from PostgreSQL's test suite. The test suite +# generates some SQL scripts and output files from template source files and +# require directories to be colocated +file(COPY ${PG_REGRESS_DIR}/data ${PG_REGRESS_DIR}/input + ${PG_REGRESS_DIR}/output ${PG_REGRESS_DIR}/sql + ${PG_REGRESS_DIR}/expected DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) -file(READ - ${PG_REGRESS_DIR}/parallel_schedule - PG_TEST_SCHEDULE) +file(READ ${PG_REGRESS_DIR}/parallel_schedule PG_TEST_SCHEDULE) # create directory for tablespace test file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/testtablespace) # Tests to ignore set(PG_IGNORE_TESTS - advisory_lock - event_trigger - foreign_data - identity - opr_sanity - rolenames - rules - sanity_check - security_label -) + advisory_lock + event_trigger + foreign_data + identity + opr_sanity + rolenames + rules + sanity_check + security_label) # Modify the test schedule to ignore some tests foreach(IGNORE_TEST ${PG_IGNORE_TESTS}) @@ -41,29 +32,22 @@ foreach(IGNORE_TEST ${PG_IGNORE_TESTS}) endforeach(IGNORE_TEST) # Write the final test schedule -file(WRITE - ${CMAKE_CURRENT_BINARY_DIR}/schedule - ${PG_TEST_SCHEDULE}) +file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/schedule ${PG_TEST_SCHEDULE}) -# Need --dlpath set to PostgreSQL's test directory so that the tests -# can load libraries there +# Need --dlpath set to PostgreSQL's test directory so that the tests can load +# libraries there set(PG_REGRESS_OPTS_PGTEST - --schedule=${CMAKE_CURRENT_BINARY_DIR}/schedule - --load-extension=timescaledb - --dlpath=${PG_REGRESS_DIR}) + --schedule=${CMAKE_CURRENT_BINARY_DIR}/schedule + --load-extension=timescaledb --dlpath=${PG_REGRESS_DIR}) -add_custom_target(pginstallcheck - COMMAND - ${PG_REGRESS} - ${PG_REGRESS_OPTS_BASE} - ${PG_REGRESS_OPTS_PGTEST} - ${PG_REGRESS_OPTS_TEMP_INSTANCE_PGTEST} +add_custom_target( + pginstallcheck + COMMAND ${PG_REGRESS} ${PG_REGRESS_OPTS_BASE} ${PG_REGRESS_OPTS_PGTEST} + ${PG_REGRESS_OPTS_TEMP_INSTANCE_PGTEST} USES_TERMINAL) -add_custom_target(pginstallchecklocal - COMMAND - ${PG_REGRESS} - ${PG_REGRESS_OPTS_BASE} - ${PG_REGRESS_OPTS_PGTEST} - ${PG_REGRESS_OPTS_LOCAL_INSTANCE} +add_custom_target( + pginstallchecklocal + COMMAND ${PG_REGRESS} ${PG_REGRESS_OPTS_BASE} ${PG_REGRESS_OPTS_PGTEST} + ${PG_REGRESS_OPTS_LOCAL_INSTANCE} USES_TERMINAL) diff --git a/test/sql/CMakeLists.txt b/test/sql/CMakeLists.txt index 49acd75f83d..80661d4a76b 100644 --- a/test/sql/CMakeLists.txt +++ b/test/sql/CMakeLists.txt @@ -1,92 +1,91 @@ set(TEST_FILES - alter.sql - alternate_users.sql - broken_tables.sql - chunks.sql - chunk_adaptive.sql - chunk_utils.sql - create_chunks.sql - create_hypertable.sql - create_table.sql - cursor.sql - ddl_errors.sql - drop_extension.sql - drop_hypertable.sql - drop_owned.sql - drop_rename_hypertable.sql - drop_schema.sql - dump_meta.sql - extension.sql - generated_as_identity.sql - grant_hypertable.sql - hash.sql - histogram_test.sql - index.sql - information_views.sql - insert_many.sql - insert_single.sql - lateral.sql - misc.sql - parallel.sql - partition.sql - partitioning.sql - pg_dump.sql - pg_dump_unprivileged.sql - pg_join.sql - plain.sql - plan_hashagg.sql - plan_ordered_append.sql - query.sql - relocate_extension.sql - reloptions.sql - size_utils.sql - sort_optimization.sql - sql_query.sql - tableam.sql - tablespace.sql - timestamp.sql - triggers.sql - truncate.sql - upsert.sql - util.sql - vacuum.sql - version.sql - license.sql -) + alter.sql + alternate_users.sql + broken_tables.sql + chunks.sql + chunk_adaptive.sql + chunk_utils.sql + create_chunks.sql + create_hypertable.sql + create_table.sql + cursor.sql + ddl_errors.sql + drop_extension.sql + drop_hypertable.sql + drop_owned.sql + drop_rename_hypertable.sql + drop_schema.sql + dump_meta.sql + extension.sql + generated_as_identity.sql + grant_hypertable.sql + hash.sql + histogram_test.sql + index.sql + information_views.sql + insert_many.sql + insert_single.sql + lateral.sql + misc.sql + parallel.sql + partition.sql + partitioning.sql + pg_dump.sql + pg_dump_unprivileged.sql + pg_join.sql + plain.sql + plan_hashagg.sql + plan_ordered_append.sql + query.sql + relocate_extension.sql + reloptions.sql + size_utils.sql + sort_optimization.sql + sql_query.sql + tableam.sql + tablespace.sql + timestamp.sql + triggers.sql + truncate.sql + upsert.sql + util.sql + vacuum.sql + version.sql + license.sql) set(TEST_TEMPLATES - agg_bookends.sql.in - append.sql.in - insert.sql.in - cluster.sql.in - constraint.sql.in - copy.sql.in - ddl.sql.in - delete.sql.in - partitionwise.sql.in - plan_expand_hypertable.sql.in - plan_hypertable_inline.sql.in - rowsecurity.sql.in - update.sql.in -) + agg_bookends.sql.in + append.sql.in + insert.sql.in + cluster.sql.in + constraint.sql.in + copy.sql.in + ddl.sql.in + delete.sql.in + partitionwise.sql.in + plan_expand_hypertable.sql.in + plan_hypertable_inline.sql.in + rowsecurity.sql.in + update.sql.in) -# tests that fail or are unreliable when run in parallel -# bgw tests need to run first otherwise they are flaky +# tests that fail or are unreliable when run in parallel bgw tests need to run +# first otherwise they are flaky set(SOLO_TESTS - alter - alternate_users - bgw_launcher - chunk_utils - index - loader - net - pg_dump_unprivileged - tablespace - telemetry -) + alter + alternate_users + bgw_launcher + chunk_utils + index + loader + net + pg_dump_unprivileged + tablespace + telemetry) -if (CMAKE_BUILD_TYPE MATCHES Debug) - list(APPEND TEST_FILES +if(CMAKE_BUILD_TYPE MATCHES Debug) + list( + APPEND + TEST_FILES bgw_launcher.sql c_unit_tests.sql guc_options.sql @@ -98,34 +97,30 @@ if (CMAKE_BUILD_TYPE MATCHES Debug) telemetry.sql test_utils.sql timestamp_limits.sql - with_clause_parser.sql - ) -endif (CMAKE_BUILD_TYPE MATCHES Debug) + with_clause_parser.sql) +endif(CMAKE_BUILD_TYPE MATCHES Debug) -if ((${PG_VERSION_MAJOR} GREATER_EQUAL "13")) - list(APPEND TEST_FILES - trusted_extension.sql - vacuum_parallel.sql - ) +if((${PG_VERSION_MAJOR} GREATER_EQUAL "13")) + list(APPEND TEST_FILES trusted_extension.sql vacuum_parallel.sql) endif() # only test custom type if we are in 64-bit architecture if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "8") - list(APPEND TEST_FILES - custom_type.sql) + list(APPEND TEST_FILES custom_type.sql) endif() -# Regression tests that vary with PostgreSQL version. Generated test -# files are put in the original source directory since all tests must -# be in the same directory. These files are updated when the template -# is edited, but not when the output file is deleted. If the output is -# deleted either recreate it manually, or rerun cmake on the root dir. +# Regression tests that vary with PostgreSQL version. Generated test files are +# put in the original source directory since all tests must be in the same +# directory. These files are updated when the template is edited, but not when +# the output file is deleted. If the output is deleted either recreate it +# manually, or rerun cmake on the root dir. foreach(TEMPLATE_FILE ${TEST_TEMPLATES}) string(LENGTH ${TEMPLATE_FILE} TEMPLATE_NAME_LEN) math(EXPR TEMPLATE_NAME_LEN ${TEMPLATE_NAME_LEN}-7) string(SUBSTRING ${TEMPLATE_FILE} 0 ${TEMPLATE_NAME_LEN} TEMPLATE) set(TEST_FILE ${TEMPLATE}-${TEST_VERSION_SUFFIX}.sql) - configure_file(${TEMPLATE_FILE} ${CMAKE_CURRENT_SOURCE_DIR}/${TEST_FILE} @ONLY) + configure_file(${TEMPLATE_FILE} ${CMAKE_CURRENT_SOURCE_DIR}/${TEST_FILE} + @ONLY) list(APPEND TEST_FILES ${TEST_FILE}) endforeach(TEMPLATE_FILE) @@ -143,7 +138,7 @@ foreach(SOLO_TEST_NAME ${SOLO_TESTS}) string(REGEX REPLACE "(.+)" "\\1.sql" TEST_FILE ${SOLO_TEST_NAME}) if(TEST_FILE IN_LIST TEST_FILES) file(APPEND ${TEST_SCHEDULE} "test: ${SOLO_TEST_NAME}\n") - endif () + endif() endforeach(SOLO_TEST_NAME) set(GROUP_MEMBERS 0) @@ -154,7 +149,7 @@ foreach(TEST_FILE ${TEST_FILES}) file(APPEND ${TEST_SCHEDULE} "\ntest: ") endif() file(APPEND ${TEST_SCHEDULE} "${TESTS_TO_RUN} ") - MATH(EXPR GROUP_MEMBERS "(${GROUP_MEMBERS}+1)%${PARALLEL_GROUP_SIZE}") + math(EXPR GROUP_MEMBERS "(${GROUP_MEMBERS}+1)%${PARALLEL_GROUP_SIZE}") endif() endforeach(TEST_FILE) file(APPEND ${TEST_SCHEDULE} "\n") diff --git a/test/sql/loader/CMakeLists.txt b/test/sql/loader/CMakeLists.txt index 80a430096a7..4b6df122266 100644 --- a/test/sql/loader/CMakeLists.txt +++ b/test/sql/loader/CMakeLists.txt @@ -1,17 +1,17 @@ -if (CMAKE_BUILD_TYPE MATCHES Debug) -install( - FILES timescaledb--mock-1.sql - timescaledb--mock-2.sql - timescaledb--mock-3.sql - timescaledb--mock-4.sql - timescaledb--mock-5.sql - timescaledb--mock-6.sql - timescaledb--mock-broken.sql - timescaledb--mock-1--mock-2.sql - timescaledb--mock-2--mock-3.sql - timescaledb--mock-3--mock-4.sql - timescaledb--mock-5--mock-6.sql - timescaledb--mock-broken--mock-5.sql - timescaledb--0.0.0.sql - DESTINATION "${PG_SHAREDIR}/extension") -endif (CMAKE_BUILD_TYPE MATCHES Debug) +if(CMAKE_BUILD_TYPE MATCHES Debug) + install( + FILES timescaledb--mock-1.sql + timescaledb--mock-2.sql + timescaledb--mock-3.sql + timescaledb--mock-4.sql + timescaledb--mock-5.sql + timescaledb--mock-6.sql + timescaledb--mock-broken.sql + timescaledb--mock-1--mock-2.sql + timescaledb--mock-2--mock-3.sql + timescaledb--mock-3--mock-4.sql + timescaledb--mock-5--mock-6.sql + timescaledb--mock-broken--mock-5.sql + timescaledb--0.0.0.sql + DESTINATION "${PG_SHAREDIR}/extension") +endif(CMAKE_BUILD_TYPE MATCHES Debug) diff --git a/test/src/CMakeLists.txt b/test/src/CMakeLists.txt index 1f02971adb4..d4f7b5477c6 100644 --- a/test/src/CMakeLists.txt +++ b/test/src/CMakeLists.txt @@ -1,24 +1,19 @@ -set(SOURCES - adt_tests.c - symbol_conflict.c - test_time_to_internal.c - test_with_clause_parser.c - test_time_utils.c - test_utils.c -) +set(SOURCES adt_tests.c symbol_conflict.c test_time_to_internal.c + test_with_clause_parser.c test_time_utils.c test_utils.c) include(${PROJECT_SOURCE_DIR}/src/build-defs.cmake) add_library(${TESTS_LIB_NAME} OBJECT ${SOURCES}) -# Since the test library will be linked into the loadable extension -# module, it needs to be compiled as position-independent code -# (e.g., the -fPIC compiler flag for GCC) +# Since the test library will be linked into the loadable extension module, it +# needs to be compiled as position-independent code (e.g., the -fPIC compiler +# flag for GCC) set_target_properties(${TESTS_LIB_NAME} PROPERTIES POSITION_INDEPENDENT_CODE ON) # Set the MODULE_NAME for the symbol conflict test (see symbol_conflict.c) target_compile_definitions(${TESTS_LIB_NAME} PUBLIC MODULE_NAME=timescaledb) -target_include_directories(${TESTS_LIB_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) +target_include_directories(${TESTS_LIB_NAME} + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) add_subdirectory(bgw) add_subdirectory(net) diff --git a/test/src/bgw/CMakeLists.txt b/test/src/bgw/CMakeLists.txt index 8eceeaf1c5e..d8a865f82b8 100644 --- a/test/src/bgw/CMakeLists.txt +++ b/test/src/bgw/CMakeLists.txt @@ -1,8 +1,8 @@ set(SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/log.c - ${CMAKE_CURRENT_SOURCE_DIR}/timer_mock.c - ${CMAKE_CURRENT_SOURCE_DIR}/scheduler_mock.c - ${CMAKE_CURRENT_SOURCE_DIR}/params.c - ${CMAKE_CURRENT_SOURCE_DIR}/test_job_refresh.c) + ${CMAKE_CURRENT_SOURCE_DIR}/log.c + ${CMAKE_CURRENT_SOURCE_DIR}/timer_mock.c + ${CMAKE_CURRENT_SOURCE_DIR}/scheduler_mock.c + ${CMAKE_CURRENT_SOURCE_DIR}/params.c + ${CMAKE_CURRENT_SOURCE_DIR}/test_job_refresh.c) target_sources(${TESTS_LIB_NAME} PRIVATE ${SOURCES}) diff --git a/test/src/loader/CMakeLists.txt b/test/src/loader/CMakeLists.txt index 0e56c051c25..2441b17d471 100644 --- a/test/src/loader/CMakeLists.txt +++ b/test/src/loader/CMakeLists.txt @@ -1,36 +1,51 @@ -set(SOURCES - init.c - ${PROJECT_SOURCE_DIR}/src/extension.c - ${PROJECT_SOURCE_DIR}/src/guc.c -) +set(SOURCES init.c ${PROJECT_SOURCE_DIR}/src/extension.c + ${PROJECT_SOURCE_DIR}/src/guc.c) -include_directories(BEFORE ${CMAKE_CURRENT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/src) +include_directories(BEFORE ${CMAKE_CURRENT_SOURCE_DIR} + ${PROJECT_SOURCE_DIR}/src) add_library(${PROJECT_NAME}-mock-1 MODULE ${SOURCES} config.h) add_library(${PROJECT_NAME}-mock-2 MODULE ${SOURCES} config.h) add_library(${PROJECT_NAME}-mock-3 MODULE ${SOURCES} config.h) -#mock-4 will be broken mismatched .so +# mock-4 will be broken mismatched .so add_library(${PROJECT_NAME}-mock-4 MODULE ${SOURCES} config.h) add_library(${PROJECT_NAME}-mock-5 MODULE ${SOURCES} config.h) add_library(${PROJECT_NAME}-mock-broken MODULE ${SOURCES} config.h) add_library(${PROJECT_NAME}-mock-6 MODULE ${SOURCES} config.h) +target_compile_definitions(${PROJECT_NAME}-mock-1 + PRIVATE TIMESCALEDB_VERSION_MOD="mock-1" BROKEN=0) +target_compile_definitions(${PROJECT_NAME}-mock-2 + PRIVATE TIMESCALEDB_VERSION_MOD="mock-2" BROKEN=0) +target_compile_definitions(${PROJECT_NAME}-mock-3 + PRIVATE TIMESCALEDB_VERSION_MOD="mock-3" BROKEN=0) +# mock 4 is intentionally incorrect version mod +target_compile_definitions( + ${PROJECT_NAME}-mock-4 PRIVATE TIMESCALEDB_VERSION_MOD="mock-4-mismatch" + BROKEN=0) +target_compile_definitions(${PROJECT_NAME}-mock-5 + PRIVATE TIMESCALEDB_VERSION_MOD="mock-5" BROKEN=0) +target_compile_definitions( + ${PROJECT_NAME}-mock-broken PRIVATE TIMESCALEDB_VERSION_MOD="mock-broken" + BROKEN=1) +target_compile_definitions(${PROJECT_NAME}-mock-6 + PRIVATE TIMESCALEDB_VERSION_MOD="mock-6" BROKEN=0) -target_compile_definitions(${PROJECT_NAME}-mock-1 PRIVATE TIMESCALEDB_VERSION_MOD="mock-1" BROKEN=0) -target_compile_definitions(${PROJECT_NAME}-mock-2 PRIVATE TIMESCALEDB_VERSION_MOD="mock-2" BROKEN=0) -target_compile_definitions(${PROJECT_NAME}-mock-3 PRIVATE TIMESCALEDB_VERSION_MOD="mock-3" BROKEN=0) -#mock 4 is intentionally incorrect version mod -target_compile_definitions(${PROJECT_NAME}-mock-4 PRIVATE TIMESCALEDB_VERSION_MOD="mock-4-mismatch" BROKEN=0) -target_compile_definitions(${PROJECT_NAME}-mock-5 PRIVATE TIMESCALEDB_VERSION_MOD="mock-5" BROKEN=0) -target_compile_definitions(${PROJECT_NAME}-mock-broken PRIVATE TIMESCALEDB_VERSION_MOD="mock-broken" BROKEN=1) -target_compile_definitions(${PROJECT_NAME}-mock-6 PRIVATE TIMESCALEDB_VERSION_MOD="mock-6" BROKEN=0) - -foreach(MOCK_VERSION mock-1 mock-2 mock-3 mock-4 mock-broken mock-5 mock-6) - set_target_properties(${PROJECT_NAME}-${MOCK_VERSION} PROPERTIES - OUTPUT_NAME ${PROJECT_NAME}-${MOCK_VERSION} - PREFIX "") +foreach( + MOCK_VERSION + mock-1 + mock-2 + mock-3 + mock-4 + mock-broken + mock-5 + mock-6) + set_target_properties( + ${PROJECT_NAME}-${MOCK_VERSION} + PROPERTIES OUTPUT_NAME ${PROJECT_NAME}-${MOCK_VERSION} PREFIX "") install( TARGETS ${PROJECT_NAME}-${MOCK_VERSION} - DESTINATION ${PG_PKGLIBDIR} OPTIONAL) + DESTINATION ${PG_PKGLIBDIR} + OPTIONAL) endforeach(MOCK_VERSION) diff --git a/test/src/net/CMakeLists.txt b/test/src/net/CMakeLists.txt index b83b7c5056c..9e63c08d286 100644 --- a/test/src/net/CMakeLists.txt +++ b/test/src/net/CMakeLists.txt @@ -1,8 +1,8 @@ set(SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/test_conn.c - ${CMAKE_CURRENT_SOURCE_DIR}/test_http.c - ${CMAKE_CURRENT_SOURCE_DIR}/conn_mock.c -) + ${CMAKE_CURRENT_SOURCE_DIR}/test_conn.c + ${CMAKE_CURRENT_SOURCE_DIR}/test_http.c + ${CMAKE_CURRENT_SOURCE_DIR}/conn_mock.c) target_sources(${TESTS_LIB_NAME} PRIVATE ${SOURCES}) -target_include_directories(${TESTS_LIB_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/src/net) +target_include_directories(${TESTS_LIB_NAME} + PRIVATE ${PROJECT_SOURCE_DIR}/src/net) diff --git a/test/src/telemetry/CMakeLists.txt b/test/src/telemetry/CMakeLists.txt index cfb3df4bcea..50c9d891d64 100644 --- a/test/src/telemetry/CMakeLists.txt +++ b/test/src/telemetry/CMakeLists.txt @@ -1,7 +1,6 @@ set(SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/metadata.c - ${CMAKE_CURRENT_SOURCE_DIR}/test_privacy.c - ${CMAKE_CURRENT_SOURCE_DIR}/test_telemetry.c -) + ${CMAKE_CURRENT_SOURCE_DIR}/metadata.c + ${CMAKE_CURRENT_SOURCE_DIR}/test_privacy.c + ${CMAKE_CURRENT_SOURCE_DIR}/test_telemetry.c) target_sources(${TESTS_LIB_NAME} PRIVATE ${SOURCES}) diff --git a/test/test-defs.cmake b/test/test-defs.cmake index 44fc90a159d..f4c936c5e37 100644 --- a/test/test-defs.cmake +++ b/test/test-defs.cmake @@ -17,13 +17,24 @@ set(TEST_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}) set(TEST_CLUSTER ${TEST_OUTPUT_DIR}/testcluster) # Basic connection info for test instance -set(TEST_PGPORT_LOCAL 5432 CACHE STRING "The port of a running PostgreSQL instance") -set(TEST_PGHOST localhost CACHE STRING "The hostname of a running PostgreSQL instance") -set(TEST_PGUSER ${TEST_ROLE_DEFAULT_PERM_USER} CACHE STRING "The PostgreSQL test user") -set(TEST_DBNAME single CACHE STRING "The database name to use for tests") -set(TEST_PGPORT_TEMP_INSTANCE 55432 CACHE STRING "The port to run a temporary test PostgreSQL instance on") +set(TEST_PGPORT_LOCAL + 5432 + CACHE STRING "The port of a running PostgreSQL instance") +set(TEST_PGHOST + localhost + CACHE STRING "The hostname of a running PostgreSQL instance") +set(TEST_PGUSER + ${TEST_ROLE_DEFAULT_PERM_USER} + CACHE STRING "The PostgreSQL test user") +set(TEST_DBNAME + single + CACHE STRING "The database name to use for tests") +set(TEST_PGPORT_TEMP_INSTANCE + 55432 + CACHE STRING "The port to run a temporary test PostgreSQL instance on") set(TEST_SCHEDULE ${CMAKE_CURRENT_BINARY_DIR}/test_schedule) -set(TEST_SCHEDULE_SHARED ${CMAKE_CURRENT_BINARY_DIR}/shared/test_schedule_shared) +set(TEST_SCHEDULE_SHARED + ${CMAKE_CURRENT_BINARY_DIR}/shared/test_schedule_shared) set(ISOLATION_TEST_SCHEDULE ${CMAKE_CURRENT_BINARY_DIR}/isolation_test_schedule) set(TEST_PASSFILE ${TEST_OUTPUT_DIR}/pgpass.conf) @@ -33,99 +44,90 @@ set(TEST_PG_HBA_FILE ${TEST_OUTPUT_DIR}/pg_hba.conf) configure_file(postgresql.conf.in postgresql.conf) # pgpass file requires chmod 0600 -configure_file(${PRIMARY_TEST_DIR}/pgpass.conf.in ${TEST_OUTPUT_DIR}${CMAKE_FILES_DIRECTORY}/pgpass.conf) -file(COPY ${TEST_OUTPUT_DIR}${CMAKE_FILES_DIRECTORY}/pgpass.conf - DESTINATION ${TEST_OUTPUT_DIR} - NO_SOURCE_PERMISSIONS - FILE_PERMISSIONS OWNER_READ OWNER_WRITE) +configure_file(${PRIMARY_TEST_DIR}/pgpass.conf.in + ${TEST_OUTPUT_DIR}${CMAKE_FILES_DIRECTORY}/pgpass.conf) +file( + COPY ${TEST_OUTPUT_DIR}${CMAKE_FILES_DIRECTORY}/pgpass.conf + DESTINATION ${TEST_OUTPUT_DIR} + NO_SOURCE_PERMISSIONS + FILE_PERMISSIONS OWNER_READ OWNER_WRITE) -set(PG_REGRESS_OPTS_BASE - --host=${TEST_PGHOST} - --dlpath=${PROJECT_BINARY_DIR}/src) +set(PG_REGRESS_OPTS_BASE --host=${TEST_PGHOST} + --dlpath=${PROJECT_BINARY_DIR}/src) set(PG_REGRESS_OPTS_EXTRA - --create-role=${TEST_ROLE_SUPERUSER},${TEST_ROLE_DEFAULT_PERM_USER},${TEST_ROLE_DEFAULT_PERM_USER_2},${TEST_ROLE_CLUSTER_SUPERUSER},${TEST_ROLE_1},${TEST_ROLE_2},${TEST_ROLE_3} - --dbname=${TEST_DBNAME} - --launcher=${PRIMARY_TEST_DIR}/runner.sh) + --create-role=${TEST_ROLE_SUPERUSER},${TEST_ROLE_DEFAULT_PERM_USER},${TEST_ROLE_DEFAULT_PERM_USER_2},${TEST_ROLE_CLUSTER_SUPERUSER},${TEST_ROLE_1},${TEST_ROLE_2},${TEST_ROLE_3} + --dbname=${TEST_DBNAME} + --launcher=${PRIMARY_TEST_DIR}/runner.sh) set(PG_REGRESS_SHARED_OPTS_EXTRA - --create-role=${TEST_ROLE_SUPERUSER},${TEST_ROLE_DEFAULT_PERM_USER},${TEST_ROLE_DEFAULT_PERM_USER_2} - --dbname=${TEST_DBNAME} - --launcher=${PRIMARY_TEST_DIR}/runner_shared.sh) + --create-role=${TEST_ROLE_SUPERUSER},${TEST_ROLE_DEFAULT_PERM_USER},${TEST_ROLE_DEFAULT_PERM_USER_2} + --dbname=${TEST_DBNAME} + --launcher=${PRIMARY_TEST_DIR}/runner_shared.sh) set(PG_ISOLATION_REGRESS_OPTS_EXTRA - --create-role=${TEST_ROLE_SUPERUSER},${TEST_ROLE_DEFAULT_PERM_USER},${TEST_ROLE_DEFAULT_PERM_USER_2},${TEST_ROLE_CLUSTER_SUPERUSER},${TEST_ROLE_1},${TEST_ROLE_2},${TEST_ROLE_3} - --dbname=${TEST_DBNAME}) + --create-role=${TEST_ROLE_SUPERUSER},${TEST_ROLE_DEFAULT_PERM_USER},${TEST_ROLE_DEFAULT_PERM_USER_2},${TEST_ROLE_CLUSTER_SUPERUSER},${TEST_ROLE_1},${TEST_ROLE_2},${TEST_ROLE_3} + --dbname=${TEST_DBNAME}) -set(PG_REGRESS_OPTS_INOUT - --inputdir=${TEST_INPUT_DIR} - --outputdir=${TEST_OUTPUT_DIR}) +set(PG_REGRESS_OPTS_INOUT --inputdir=${TEST_INPUT_DIR} + --outputdir=${TEST_OUTPUT_DIR}) set(PG_REGRESS_SHARED_OPTS_INOUT - --inputdir=${TEST_INPUT_DIR}/shared - --outputdir=${TEST_OUTPUT_DIR}/shared - --load-extension=timescaledb) + --inputdir=${TEST_INPUT_DIR}/shared --outputdir=${TEST_OUTPUT_DIR}/shared + --load-extension=timescaledb) set(PG_ISOLATION_REGRESS_OPTS_INOUT - --inputdir=${TEST_INPUT_DIR}/isolation - --outputdir=${TEST_OUTPUT_DIR}/isolation - --load-extension=timescaledb) + --inputdir=${TEST_INPUT_DIR}/isolation + --outputdir=${TEST_OUTPUT_DIR}/isolation --load-extension=timescaledb) set(PG_REGRESS_OPTS_TEMP_INSTANCE - --port=${TEST_PGPORT_TEMP_INSTANCE} - --temp-instance=${TEST_CLUSTER} - --temp-config=${TEST_OUTPUT_DIR}/postgresql.conf -) + --port=${TEST_PGPORT_TEMP_INSTANCE} --temp-instance=${TEST_CLUSTER} + --temp-config=${TEST_OUTPUT_DIR}/postgresql.conf) set(PG_REGRESS_OPTS_TEMP_INSTANCE_PGTEST - --port=${TEST_PGPORT_TEMP_INSTANCE} - --temp-instance=${TEST_CLUSTER} - --temp-config=${TEST_INPUT_DIR}/pgtest.conf -) + --port=${TEST_PGPORT_TEMP_INSTANCE} --temp-instance=${TEST_CLUSTER} + --temp-config=${TEST_INPUT_DIR}/pgtest.conf) -set(PG_REGRESS_OPTS_LOCAL_INSTANCE - --port=${TEST_PGPORT_LOCAL}) +set(PG_REGRESS_OPTS_LOCAL_INSTANCE --port=${TEST_PGPORT_LOCAL}) if(PG_REGRESS) set(PG_REGRESS_ENV - TEST_PGUSER=${TEST_PGUSER} - TEST_PGHOST=${TEST_PGHOST} - TEST_ROLE_SUPERUSER=${TEST_ROLE_SUPERUSER} - TEST_ROLE_DEFAULT_PERM_USER=${TEST_ROLE_DEFAULT_PERM_USER} - TEST_ROLE_DEFAULT_PERM_USER_2=${TEST_ROLE_DEFAULT_PERM_USER_2} - TEST_ROLE_CLUSTER_SUPERUSER=${TEST_ROLE_CLUSTER_SUPERUSER} - TEST_ROLE_1=${TEST_ROLE_1} - TEST_ROLE_2=${TEST_ROLE_2} - TEST_ROLE_3=${TEST_ROLE_3} - TEST_ROLE_2_PASS=${TEST_ROLE_2_PASS} - TEST_ROLE_3_PASS=${TEST_ROLE_3_PASS} - TEST_DBNAME=${TEST_DBNAME} - TEST_INPUT_DIR=${TEST_INPUT_DIR} - TEST_OUTPUT_DIR=${TEST_OUTPUT_DIR} - TEST_SCHEDULE=${TEST_SCHEDULE} - PG_BINDIR=${PG_BINDIR} - PG_REGRESS=${PG_REGRESS} - ) + TEST_PGUSER=${TEST_PGUSER} + TEST_PGHOST=${TEST_PGHOST} + TEST_ROLE_SUPERUSER=${TEST_ROLE_SUPERUSER} + TEST_ROLE_DEFAULT_PERM_USER=${TEST_ROLE_DEFAULT_PERM_USER} + TEST_ROLE_DEFAULT_PERM_USER_2=${TEST_ROLE_DEFAULT_PERM_USER_2} + TEST_ROLE_CLUSTER_SUPERUSER=${TEST_ROLE_CLUSTER_SUPERUSER} + TEST_ROLE_1=${TEST_ROLE_1} + TEST_ROLE_2=${TEST_ROLE_2} + TEST_ROLE_3=${TEST_ROLE_3} + TEST_ROLE_2_PASS=${TEST_ROLE_2_PASS} + TEST_ROLE_3_PASS=${TEST_ROLE_3_PASS} + TEST_DBNAME=${TEST_DBNAME} + TEST_INPUT_DIR=${TEST_INPUT_DIR} + TEST_OUTPUT_DIR=${TEST_OUTPUT_DIR} + TEST_SCHEDULE=${TEST_SCHEDULE} + PG_BINDIR=${PG_BINDIR} + PG_REGRESS=${PG_REGRESS}) endif() if(PG_ISOLATION_REGRESS) set(PG_ISOLATION_REGRESS_ENV - TEST_PGUSER=${TEST_PGUSER} - TEST_ROLE_SUPERUSER=${TEST_ROLE_SUPERUSER} - TEST_ROLE_DEFAULT_PERM_USER=${TEST_ROLE_DEFAULT_PERM_USER} - TEST_ROLE_DEFAULT_PERM_USER_2=${TEST_ROLE_DEFAULT_PERM_USER_2} - TEST_ROLE_CLUSTER_SUPERUSER=${TEST_ROLE_CLUSTER_SUPERUSER} - TEST_ROLE_1=${TEST_ROLE_1} - TEST_ROLE_2=${TEST_ROLE_2} - TEST_ROLE_3=${TEST_ROLE_3} - TEST_ROLE_2_PASS=${TEST_2_PASS} - TEST_ROLE_3_PASS=${TEST_3_PASS} - TEST_DBNAME=${TEST_DBNAME} - TEST_INPUT_DIR=${TEST_INPUT_DIR} - TEST_OUTPUT_DIR=${TEST_OUTPUT_DIR} - TEST_SCHEDULE=${ISOLATION_TEST_SCHEDULE} - PG_REGRESS=${PG_ISOLATION_REGRESS} - ) + TEST_PGUSER=${TEST_PGUSER} + TEST_ROLE_SUPERUSER=${TEST_ROLE_SUPERUSER} + TEST_ROLE_DEFAULT_PERM_USER=${TEST_ROLE_DEFAULT_PERM_USER} + TEST_ROLE_DEFAULT_PERM_USER_2=${TEST_ROLE_DEFAULT_PERM_USER_2} + TEST_ROLE_CLUSTER_SUPERUSER=${TEST_ROLE_CLUSTER_SUPERUSER} + TEST_ROLE_1=${TEST_ROLE_1} + TEST_ROLE_2=${TEST_ROLE_2} + TEST_ROLE_3=${TEST_ROLE_3} + TEST_ROLE_2_PASS=${TEST_2_PASS} + TEST_ROLE_3_PASS=${TEST_3_PASS} + TEST_DBNAME=${TEST_DBNAME} + TEST_INPUT_DIR=${TEST_INPUT_DIR} + TEST_OUTPUT_DIR=${TEST_OUTPUT_DIR} + TEST_SCHEDULE=${ISOLATION_TEST_SCHEDULE} + PG_REGRESS=${PG_ISOLATION_REGRESS}) endif() set(TEST_VERSION_SUFFIX ${PG_VERSION_MAJOR}) diff --git a/tsl/src/CMakeLists.txt b/tsl/src/CMakeLists.txt index c1a147c8e1f..b4aabad4c8b 100644 --- a/tsl/src/CMakeLists.txt +++ b/tsl/src/CMakeLists.txt @@ -1,63 +1,59 @@ set(SOURCES - async_append.c - chunk_api.c - chunk.c - data_node.c - deparse.c - dist_util.c - dist_backup.c - hypertable.c - init.c - partialize_finalize.c - planner.c - process_utility.c - reorder.c - telemetry.c -) + async_append.c + chunk_api.c + chunk.c + data_node.c + deparse.c + dist_util.c + dist_backup.c + hypertable.c + init.c + partialize_finalize.c + planner.c + process_utility.c + reorder.c + telemetry.c) # Add test source code in Debug builds -if (CMAKE_BUILD_TYPE MATCHES Debug) +if(CMAKE_BUILD_TYPE MATCHES Debug) set(TS_DEBUG 1) set(DEBUG 1) - list(APPEND SOURCES - debug.c) -endif (CMAKE_BUILD_TYPE MATCHES Debug) + list(APPEND SOURCES debug.c) +endif(CMAKE_BUILD_TYPE MATCHES Debug) set(TSL_LIBRARY_NAME ${PROJECT_NAME}-tsl) include(build-defs.cmake) -if (CMAKE_BUILD_TYPE MATCHES Debug) -add_library(${TSL_LIBRARY_NAME} MODULE ${SOURCES} $) -else () -add_library(${TSL_LIBRARY_NAME} MODULE ${SOURCES}) -endif () +if(CMAKE_BUILD_TYPE MATCHES Debug) + add_library(${TSL_LIBRARY_NAME} MODULE + ${SOURCES} $) +else() + add_library(${TSL_LIBRARY_NAME} MODULE ${SOURCES}) +endif() -set_target_properties(${TSL_LIBRARY_NAME} PROPERTIES - OUTPUT_NAME ${TSL_LIBRARY_NAME}-${PROJECT_VERSION_MOD} - PREFIX "") +set_target_properties( + ${TSL_LIBRARY_NAME} + PROPERTIES OUTPUT_NAME ${TSL_LIBRARY_NAME}-${PROJECT_VERSION_MOD} PREFIX "") target_include_directories(${TSL_LIBRARY_NAME} PRIVATE ${PG_INCLUDEDIR}) -if (USE_OPENSSL) +if(USE_OPENSSL) target_include_directories(${TSL_LIBRARY_NAME} PRIVATE ${OPENSSL_INCLUDE_DIR}) -endif (USE_OPENSSL) +endif(USE_OPENSSL) target_compile_definitions(${TSL_LIBRARY_NAME} PUBLIC TS_TSL) target_compile_definitions(${TSL_LIBRARY_NAME} PUBLIC TS_SUBMODULE) -if (WIN32) +if(WIN32) target_link_libraries(${TSL_LIBRARY_NAME} ${PG_LIBDIR}/libpq.lib) -else () +else() target_link_libraries(${TSL_LIBRARY_NAME} pq) -endif () +endif() -install( - TARGETS ${TSL_LIBRARY_NAME} - DESTINATION ${PG_PKGLIBDIR}) +install(TARGETS ${TSL_LIBRARY_NAME} DESTINATION ${PG_PKGLIBDIR}) -# if (WIN32) -# target_link_libraries(${PROJECT_NAME} ${PROJECT_NAME}-${PROJECT_VERSION_MOD}.lib) -# endif(WIN32) +# if (WIN32) target_link_libraries(${PROJECT_NAME} +# ${PROJECT_NAME}-${PROJECT_VERSION_MOD}.lib) endif(WIN32) add_subdirectory(bgw_policy) add_subdirectory(compression) diff --git a/tsl/src/bgw_policy/CMakeLists.txt b/tsl/src/bgw_policy/CMakeLists.txt index 663d59e9d69..eac40dd9d93 100644 --- a/tsl/src/bgw_policy/CMakeLists.txt +++ b/tsl/src/bgw_policy/CMakeLists.txt @@ -1,11 +1,10 @@ set(SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/compression_api.c - ${CMAKE_CURRENT_SOURCE_DIR}/continuous_aggregate_api.c - ${CMAKE_CURRENT_SOURCE_DIR}/job.c - ${CMAKE_CURRENT_SOURCE_DIR}/job_api.c - ${CMAKE_CURRENT_SOURCE_DIR}/reorder_api.c - ${CMAKE_CURRENT_SOURCE_DIR}/retention_api.c - ${CMAKE_CURRENT_SOURCE_DIR}/policy_utils.c -) + ${CMAKE_CURRENT_SOURCE_DIR}/compression_api.c + ${CMAKE_CURRENT_SOURCE_DIR}/continuous_aggregate_api.c + ${CMAKE_CURRENT_SOURCE_DIR}/job.c + ${CMAKE_CURRENT_SOURCE_DIR}/job_api.c + ${CMAKE_CURRENT_SOURCE_DIR}/reorder_api.c + ${CMAKE_CURRENT_SOURCE_DIR}/retention_api.c + ${CMAKE_CURRENT_SOURCE_DIR}/policy_utils.c) target_sources(${TSL_LIBRARY_NAME} PRIVATE ${SOURCES}) target_include_directories(${TSL_LIBRARY_NAME} PRIVATE ${CMAKE_SOURCE_DIR}) diff --git a/tsl/src/build-defs.cmake b/tsl/src/build-defs.cmake index fef5a314882..1b5144ae924 100644 --- a/tsl/src/build-defs.cmake +++ b/tsl/src/build-defs.cmake @@ -1,7 +1,7 @@ # Hide symbols by default in shared libraries set(CMAKE_C_VISIBILITY_PRESET "hidden") -if (UNIX) +if(UNIX) set(CMAKE_C_STANDARD 11) set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -L${PG_LIBDIR}") set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -L${PG_LIBDIR}") @@ -11,44 +11,47 @@ if (UNIX) endif() if(APPLE) - set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -multiply_defined suppress") - set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -multiply_defined suppress -Wl,-undefined,dynamic_lookup -bundle_loader ${PG_BINDIR}/postgres") + set(CMAKE_SHARED_LINKER_FLAGS + "${CMAKE_SHARED_LINKER_FLAGS} -multiply_defined suppress") + set(CMAKE_MODULE_LINKER_FLAGS + "${CMAKE_MODULE_LINKER_FLAGS} -multiply_defined suppress -Wl,-undefined,dynamic_lookup -bundle_loader ${PG_BINDIR}/postgres" + ) elseif(WIN32) set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /MANIFEST:NO") set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} /MANIFEST:NO") endif() -# PG_LDFLAGS can have strange values if not found, so we just add the -# flags if they are defined. +# PG_LDFLAGS can have strange values if not found, so we just add the flags if +# they are defined. if(PG_LDFLAGS) set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${PG_LDFLAGS}") set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${PG_LDFLAGS}") endif() -include_directories( - ${PROJECT_SOURCE_DIR}/src - ${PROJECT_SOURCE_DIR}/tsl/src - ${PROJECT_BINARY_DIR}/src - ${PROJECT_BINARY_DIR}/tsl/src) +include_directories(${PROJECT_SOURCE_DIR}/src ${PROJECT_SOURCE_DIR}/tsl/src + ${PROJECT_BINARY_DIR}/src ${PROJECT_BINARY_DIR}/tsl/src) include_directories(SYSTEM ${PG_INCLUDEDIR_SERVER}) -# Only Windows and FreeBSD need the base include/ dir instead of include/server/, and including -# both causes problems on Ubuntu where they frequently get out of sync -if (WIN32 OR (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")) +# Only Windows and FreeBSD need the base include/ dir instead of +# include/server/, and including both causes problems on Ubuntu where they +# frequently get out of sync +if(WIN32 OR (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")) include_directories(SYSTEM ${PG_INCLUDEDIR}) -endif () +endif() -if (WIN32) +if(WIN32) link_directories(${PROJECT_BINARY_DIR}/src) - set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${PG_LIBDIR}/postgres.lib ws2_32.lib Version.lib ${PROJECT_NAME}-${PROJECT_VERSION_MOD}.lib") + set(CMAKE_MODULE_LINKER_FLAGS + "${CMAKE_MODULE_LINKER_FLAGS} ${PG_LIBDIR}/postgres.lib ws2_32.lib Version.lib ${PROJECT_NAME}-${PROJECT_VERSION_MOD}.lib" + ) set(CMAKE_C_FLAGS "-D_CRT_SECURE_NO_WARNINGS") include_directories(SYSTEM ${PG_INCLUDEDIR_SERVER}/port/win32) - if (MSVC) + if(MSVC) include_directories(SYSTEM ${PG_INCLUDEDIR_SERVER}/port/win32_msvc) - endif (MSVC) -endif (WIN32) + endif(MSVC) +endif(WIN32) # Name of library with test-specific code set(TSL_TESTS_LIB_NAME ${PROJECT_NAME}-tsl-tests) diff --git a/tsl/src/compression/CMakeLists.txt b/tsl/src/compression/CMakeLists.txt index efc81224f2e..f574998939a 100644 --- a/tsl/src/compression/CMakeLists.txt +++ b/tsl/src/compression/CMakeLists.txt @@ -1,12 +1,11 @@ set(SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/array.c - ${CMAKE_CURRENT_SOURCE_DIR}/compression.c - ${CMAKE_CURRENT_SOURCE_DIR}/create.c - ${CMAKE_CURRENT_SOURCE_DIR}/compress_utils.c - ${CMAKE_CURRENT_SOURCE_DIR}/datum_serialize.c - ${CMAKE_CURRENT_SOURCE_DIR}/deltadelta.c - ${CMAKE_CURRENT_SOURCE_DIR}/dictionary.c - ${CMAKE_CURRENT_SOURCE_DIR}/gorilla.c - ${CMAKE_CURRENT_SOURCE_DIR}/segment_meta.c -) + ${CMAKE_CURRENT_SOURCE_DIR}/array.c + ${CMAKE_CURRENT_SOURCE_DIR}/compression.c + ${CMAKE_CURRENT_SOURCE_DIR}/create.c + ${CMAKE_CURRENT_SOURCE_DIR}/compress_utils.c + ${CMAKE_CURRENT_SOURCE_DIR}/datum_serialize.c + ${CMAKE_CURRENT_SOURCE_DIR}/deltadelta.c + ${CMAKE_CURRENT_SOURCE_DIR}/dictionary.c + ${CMAKE_CURRENT_SOURCE_DIR}/gorilla.c + ${CMAKE_CURRENT_SOURCE_DIR}/segment_meta.c) target_sources(${TSL_LIBRARY_NAME} PRIVATE ${SOURCES}) diff --git a/tsl/src/continuous_aggs/CMakeLists.txt b/tsl/src/continuous_aggs/CMakeLists.txt index 87506814fbd..8b75a036231 100644 --- a/tsl/src/continuous_aggs/CMakeLists.txt +++ b/tsl/src/continuous_aggs/CMakeLists.txt @@ -1,10 +1,9 @@ set(SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/create.c - ${CMAKE_CURRENT_SOURCE_DIR}/insert.c - ${CMAKE_CURRENT_SOURCE_DIR}/materialize.c - ${CMAKE_CURRENT_SOURCE_DIR}/options.c - ${CMAKE_CURRENT_SOURCE_DIR}/refresh.c - ${CMAKE_CURRENT_SOURCE_DIR}/invalidation.c - ${CMAKE_CURRENT_SOURCE_DIR}/invalidation_threshold.c -) + ${CMAKE_CURRENT_SOURCE_DIR}/create.c + ${CMAKE_CURRENT_SOURCE_DIR}/insert.c + ${CMAKE_CURRENT_SOURCE_DIR}/materialize.c + ${CMAKE_CURRENT_SOURCE_DIR}/options.c + ${CMAKE_CURRENT_SOURCE_DIR}/refresh.c + ${CMAKE_CURRENT_SOURCE_DIR}/invalidation.c + ${CMAKE_CURRENT_SOURCE_DIR}/invalidation_threshold.c) target_sources(${TSL_LIBRARY_NAME} PRIVATE ${SOURCES}) diff --git a/tsl/src/fdw/CMakeLists.txt b/tsl/src/fdw/CMakeLists.txt index 6d49b0065ea..2e02af11084 100644 --- a/tsl/src/fdw/CMakeLists.txt +++ b/tsl/src/fdw/CMakeLists.txt @@ -1,18 +1,17 @@ set(SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/relinfo.c - ${CMAKE_CURRENT_SOURCE_DIR}/estimate.c - ${CMAKE_CURRENT_SOURCE_DIR}/fdw.c - ${CMAKE_CURRENT_SOURCE_DIR}/fdw_utils.c - ${CMAKE_CURRENT_SOURCE_DIR}/modify_plan.c - ${CMAKE_CURRENT_SOURCE_DIR}/modify_exec.c - ${CMAKE_CURRENT_SOURCE_DIR}/scan_plan.c - ${CMAKE_CURRENT_SOURCE_DIR}/scan_exec.c - ${CMAKE_CURRENT_SOURCE_DIR}/deparse.c - ${CMAKE_CURRENT_SOURCE_DIR}/shippable.c - ${CMAKE_CURRENT_SOURCE_DIR}/option.c - ${CMAKE_CURRENT_SOURCE_DIR}/data_node_chunk_assignment.c - ${CMAKE_CURRENT_SOURCE_DIR}/data_node_scan_plan.c - ${CMAKE_CURRENT_SOURCE_DIR}/data_node_scan_exec.c -) + ${CMAKE_CURRENT_SOURCE_DIR}/relinfo.c + ${CMAKE_CURRENT_SOURCE_DIR}/estimate.c + ${CMAKE_CURRENT_SOURCE_DIR}/fdw.c + ${CMAKE_CURRENT_SOURCE_DIR}/fdw_utils.c + ${CMAKE_CURRENT_SOURCE_DIR}/modify_plan.c + ${CMAKE_CURRENT_SOURCE_DIR}/modify_exec.c + ${CMAKE_CURRENT_SOURCE_DIR}/scan_plan.c + ${CMAKE_CURRENT_SOURCE_DIR}/scan_exec.c + ${CMAKE_CURRENT_SOURCE_DIR}/deparse.c + ${CMAKE_CURRENT_SOURCE_DIR}/shippable.c + ${CMAKE_CURRENT_SOURCE_DIR}/option.c + ${CMAKE_CURRENT_SOURCE_DIR}/data_node_chunk_assignment.c + ${CMAKE_CURRENT_SOURCE_DIR}/data_node_scan_plan.c + ${CMAKE_CURRENT_SOURCE_DIR}/data_node_scan_exec.c) target_sources(${TSL_LIBRARY_NAME} PRIVATE ${SOURCES}) diff --git a/tsl/src/nodes/CMakeLists.txt b/tsl/src/nodes/CMakeLists.txt index 0030cc6f827..f4901e1b9cd 100644 --- a/tsl/src/nodes/CMakeLists.txt +++ b/tsl/src/nodes/CMakeLists.txt @@ -1,7 +1,5 @@ -set(SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/data_node_dispatch.c - ${CMAKE_CURRENT_SOURCE_DIR}/data_node_copy.c -) +set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/data_node_dispatch.c + ${CMAKE_CURRENT_SOURCE_DIR}/data_node_copy.c) target_sources(${TSL_LIBRARY_NAME} PRIVATE ${SOURCES}) add_subdirectory(compress_dml) add_subdirectory(decompress_chunk) diff --git a/tsl/src/nodes/compress_dml/CMakeLists.txt b/tsl/src/nodes/compress_dml/CMakeLists.txt index cf9625ddfc3..16d04338a35 100644 --- a/tsl/src/nodes/compress_dml/CMakeLists.txt +++ b/tsl/src/nodes/compress_dml/CMakeLists.txt @@ -1,4 +1,2 @@ -set(SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/compress_dml.c -) +set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/compress_dml.c) target_sources(${TSL_LIBRARY_NAME} PRIVATE ${SOURCES}) diff --git a/tsl/src/nodes/decompress_chunk/CMakeLists.txt b/tsl/src/nodes/decompress_chunk/CMakeLists.txt index 190ef7c10ab..788ae7ea843 100644 --- a/tsl/src/nodes/decompress_chunk/CMakeLists.txt +++ b/tsl/src/nodes/decompress_chunk/CMakeLists.txt @@ -1,8 +1,6 @@ # Add all *.c to sources in upperlevel directory set(SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/decompress_chunk.c - ${CMAKE_CURRENT_SOURCE_DIR}/exec.c - ${CMAKE_CURRENT_SOURCE_DIR}/planner.c - ${CMAKE_CURRENT_SOURCE_DIR}/qual_pushdown.c -) + ${CMAKE_CURRENT_SOURCE_DIR}/decompress_chunk.c + ${CMAKE_CURRENT_SOURCE_DIR}/exec.c ${CMAKE_CURRENT_SOURCE_DIR}/planner.c + ${CMAKE_CURRENT_SOURCE_DIR}/qual_pushdown.c) target_sources(${TSL_LIBRARY_NAME} PRIVATE ${SOURCES}) diff --git a/tsl/src/nodes/gapfill/CMakeLists.txt b/tsl/src/nodes/gapfill/CMakeLists.txt index 0bd532485c0..d399ec817b8 100644 --- a/tsl/src/nodes/gapfill/CMakeLists.txt +++ b/tsl/src/nodes/gapfill/CMakeLists.txt @@ -1,8 +1,5 @@ set(SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/gapfill.c - ${CMAKE_CURRENT_SOURCE_DIR}/planner.c - ${CMAKE_CURRENT_SOURCE_DIR}/exec.c - ${CMAKE_CURRENT_SOURCE_DIR}/locf.c - ${CMAKE_CURRENT_SOURCE_DIR}/interpolate.c -) + ${CMAKE_CURRENT_SOURCE_DIR}/gapfill.c ${CMAKE_CURRENT_SOURCE_DIR}/planner.c + ${CMAKE_CURRENT_SOURCE_DIR}/exec.c ${CMAKE_CURRENT_SOURCE_DIR}/locf.c + ${CMAKE_CURRENT_SOURCE_DIR}/interpolate.c) target_sources(${TSL_LIBRARY_NAME} PRIVATE ${SOURCES}) diff --git a/tsl/src/nodes/skip_scan/CMakeLists.txt b/tsl/src/nodes/skip_scan/CMakeLists.txt index c26722d2c7d..ca5e440a006 100644 --- a/tsl/src/nodes/skip_scan/CMakeLists.txt +++ b/tsl/src/nodes/skip_scan/CMakeLists.txt @@ -1,5 +1,3 @@ -set(SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/planner.c - ${CMAKE_CURRENT_SOURCE_DIR}/exec.c -) +set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/planner.c + ${CMAKE_CURRENT_SOURCE_DIR}/exec.c) target_sources(${TSL_LIBRARY_NAME} PRIVATE ${SOURCES}) diff --git a/tsl/src/remote/CMakeLists.txt b/tsl/src/remote/CMakeLists.txt index 1d04635ac67..95359167ce7 100644 --- a/tsl/src/remote/CMakeLists.txt +++ b/tsl/src/remote/CMakeLists.txt @@ -16,7 +16,6 @@ set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/txn_store.c ${CMAKE_CURRENT_SOURCE_DIR}/txn_id.c ${CMAKE_CURRENT_SOURCE_DIR}/txn_resolve.c - ${CMAKE_CURRENT_SOURCE_DIR}/utils.c - ) + ${CMAKE_CURRENT_SOURCE_DIR}/utils.c) target_sources(${TSL_LIBRARY_NAME} PRIVATE ${SOURCES}) target_include_directories(${TSL_LIBRARY_NAME} PRIVATE ${PG_INCLUDEDIR}) diff --git a/tsl/test/CMakeLists.txt b/tsl/test/CMakeLists.txt index 0aacb82b879..c826422dddb 100644 --- a/tsl/test/CMakeLists.txt +++ b/tsl/test/CMakeLists.txt @@ -6,72 +6,63 @@ set(_local_install_checks) set(_install_checks) if(PG_REGRESS) - add_custom_target(regresscheck-t - COMMAND ${CMAKE_COMMAND} -E env - ${PG_REGRESS_ENV} - EXE_DIR=${CMAKE_CURRENT_SOURCE_DIR} - TEST_PGPORT=${TEST_PGPORT_TEMP_INSTANCE} - ${PRIMARY_TEST_DIR}/pg_regress.sh - ${PG_REGRESS_OPTS_BASE} - ${PG_REGRESS_OPTS_EXTRA} - ${PG_REGRESS_OPTS_INOUT} - ${PG_REGRESS_OPTS_TEMP_INSTANCE} + add_custom_target( + regresscheck-t + COMMAND + ${CMAKE_COMMAND} -E env ${PG_REGRESS_ENV} + EXE_DIR=${CMAKE_CURRENT_SOURCE_DIR} + TEST_PGPORT=${TEST_PGPORT_TEMP_INSTANCE} ${PRIMARY_TEST_DIR}/pg_regress.sh + ${PG_REGRESS_OPTS_BASE} ${PG_REGRESS_OPTS_EXTRA} ${PG_REGRESS_OPTS_INOUT} + ${PG_REGRESS_OPTS_TEMP_INSTANCE} USES_TERMINAL) - add_custom_target(regresschecklocal-t - COMMAND ${CMAKE_COMMAND} -E env - ${PG_REGRESS_ENV} - EXE_DIR=${CMAKE_CURRENT_SOURCE_DIR} - TEST_PGPORT=${TEST_PGPORT_LOCAL} - ${PRIMARY_TEST_DIR}/pg_regress.sh - ${PG_REGRESS_OPTS_BASE} - ${PG_REGRESS_OPTS_EXTRA} - ${PG_REGRESS_OPTS_INOUT} - ${PG_REGRESS_OPTS_LOCAL_INSTANCE} + add_custom_target( + regresschecklocal-t + COMMAND + ${CMAKE_COMMAND} -E env ${PG_REGRESS_ENV} + EXE_DIR=${CMAKE_CURRENT_SOURCE_DIR} TEST_PGPORT=${TEST_PGPORT_LOCAL} + ${PRIMARY_TEST_DIR}/pg_regress.sh ${PG_REGRESS_OPTS_BASE} + ${PG_REGRESS_OPTS_EXTRA} ${PG_REGRESS_OPTS_INOUT} + ${PG_REGRESS_OPTS_LOCAL_INSTANCE} USES_TERMINAL) list(APPEND _local_install_checks regresschecklocal-t) list(APPEND _install_checks regresscheck-t) - add_custom_target(regresscheck-shared - COMMAND ${CMAKE_COMMAND} -E env - ${PG_REGRESS_ENV} - EXE_DIR=${CMAKE_CURRENT_SOURCE_DIR}/shared - TEST_SCHEDULE=${TEST_SCHEDULE_SHARED} - TEST_PGPORT=${TEST_PGPORT_TEMP_INSTANCE} - ${PRIMARY_TEST_DIR}/pg_regress.sh - ${PG_REGRESS_OPTS_BASE} - ${PG_REGRESS_SHARED_OPTS_EXTRA} - ${PG_REGRESS_SHARED_OPTS_INOUT} - ${PG_REGRESS_OPTS_TEMP_INSTANCE} + add_custom_target( + regresscheck-shared + COMMAND + ${CMAKE_COMMAND} -E env ${PG_REGRESS_ENV} + EXE_DIR=${CMAKE_CURRENT_SOURCE_DIR}/shared + TEST_SCHEDULE=${TEST_SCHEDULE_SHARED} + TEST_PGPORT=${TEST_PGPORT_TEMP_INSTANCE} ${PRIMARY_TEST_DIR}/pg_regress.sh + ${PG_REGRESS_OPTS_BASE} ${PG_REGRESS_SHARED_OPTS_EXTRA} + ${PG_REGRESS_SHARED_OPTS_INOUT} ${PG_REGRESS_OPTS_TEMP_INSTANCE} USES_TERMINAL) - add_custom_target(regresschecklocal-shared - COMMAND ${CMAKE_COMMAND} -E env - ${PG_REGRESS_ENV} - EXE_DIR=${CMAKE_CURRENT_SOURCE_DIR}/shared - TEST_SCHEDULE=${TEST_SCHEDULE_SHARED} - TEST_PGPORT=${TEST_PGPORT_LOCAL} - ${PRIMARY_TEST_DIR}/pg_regress.sh - ${PG_REGRESS_OPTS_BASE} - ${PG_REGRESS_SHARED_OPTS_EXTRA} - ${PG_REGRESS_SHARED_OPTS_INOUT} - ${PG_REGRESS_OPTS_LOCAL_INSTANCE} + add_custom_target( + regresschecklocal-shared + COMMAND + ${CMAKE_COMMAND} -E env ${PG_REGRESS_ENV} + EXE_DIR=${CMAKE_CURRENT_SOURCE_DIR}/shared + TEST_SCHEDULE=${TEST_SCHEDULE_SHARED} TEST_PGPORT=${TEST_PGPORT_LOCAL} + ${PRIMARY_TEST_DIR}/pg_regress.sh ${PG_REGRESS_OPTS_BASE} + ${PG_REGRESS_SHARED_OPTS_EXTRA} ${PG_REGRESS_SHARED_OPTS_INOUT} + ${PG_REGRESS_OPTS_LOCAL_INSTANCE} USES_TERMINAL) -if (TAP_CHECKS) - add_custom_target(provecheck - COMMAND rm -rf ${CMAKE_CURRENT_BINARY_DIR}/tmp_check - COMMAND BUILDIR=${CMAKE_BINARY_DIR} - PATH="${PG_BINDIR}:$ENV{PATH}" - PG_REGRESS=${PG_REGRESS} - SRC_DIR=${PG_SOURCE_DIR} - CM_SRC_DIR=${CMAKE_SOURCE_DIR} - PG_LIBDIR=${PG_LIBDIR} - ${PRIMARY_TEST_DIR}/pg_prove.sh - USES_TERMINAL) - list(APPEND _install_checks provecheck) -endif() + if(TAP_CHECKS) + add_custom_target( + provecheck + COMMAND rm -rf ${CMAKE_CURRENT_BINARY_DIR}/tmp_check + COMMAND + BUILDIR=${CMAKE_BINARY_DIR} PATH="${PG_BINDIR}:$ENV{PATH}" + PG_REGRESS=${PG_REGRESS} SRC_DIR=${PG_SOURCE_DIR} + CM_SRC_DIR=${CMAKE_SOURCE_DIR} PG_LIBDIR=${PG_LIBDIR} + ${PRIMARY_TEST_DIR}/pg_prove.sh + USES_TERMINAL) + list(APPEND _install_checks provecheck) + endif() list(APPEND _install_checks regresscheck-shared) list(APPEND _local_install_checks regresschecklocal-shared) @@ -79,30 +70,26 @@ endif() endif() if(PG_ISOLATION_REGRESS) - add_custom_target(isolationcheck-t - COMMAND ${CMAKE_COMMAND} -E env - ${PG_ISOLATION_REGRESS_ENV} - EXE_DIR=${CMAKE_CURRENT_SOURCE_DIR} - SPECS_DIR=${CMAKE_CURRENT_BINARY_DIR}/isolation/specs - TEST_PGPORT=${TEST_PGPORT_TEMP_INSTANCE} - ${PRIMARY_TEST_DIR}/pg_regress.sh - ${PG_REGRESS_OPTS_BASE} - ${PG_ISOLATION_REGRESS_OPTS_EXTRA} - ${PG_ISOLATION_REGRESS_OPTS_INOUT} - ${PG_REGRESS_OPTS_TEMP_INSTANCE} + add_custom_target( + isolationcheck-t + COMMAND + ${CMAKE_COMMAND} -E env ${PG_ISOLATION_REGRESS_ENV} + EXE_DIR=${CMAKE_CURRENT_SOURCE_DIR} + SPECS_DIR=${CMAKE_CURRENT_BINARY_DIR}/isolation/specs + TEST_PGPORT=${TEST_PGPORT_TEMP_INSTANCE} ${PRIMARY_TEST_DIR}/pg_regress.sh + ${PG_REGRESS_OPTS_BASE} ${PG_ISOLATION_REGRESS_OPTS_EXTRA} + ${PG_ISOLATION_REGRESS_OPTS_INOUT} ${PG_REGRESS_OPTS_TEMP_INSTANCE} USES_TERMINAL) - add_custom_target(isolationchecklocal-t - COMMAND ${CMAKE_COMMAND} -E env - ${PG_ISOLATION_REGRESS_ENV} - EXE_DIR=${CMAKE_CURRENT_SOURCE_DIR} - SPECS_DIR=${CMAKE_CURRENT_BINARY_DIR}/isolation/specs - TEST_PGPORT=${TEST_PGPORT_LOCAL} - ${PRIMARY_TEST_DIR}/pg_regress.sh - ${PG_REGRESS_OPTS_BASE} - ${PG_ISOLATION_REGRESS_OPTS_EXTRA} - ${PG_ISOLATION_REGRESS_OPTS_INOUT} - ${PG_REGRESS_OPTS_LOCAL_INSTANCE} + add_custom_target( + isolationchecklocal-t + COMMAND + ${CMAKE_COMMAND} -E env ${PG_ISOLATION_REGRESS_ENV} + EXE_DIR=${CMAKE_CURRENT_SOURCE_DIR} + SPECS_DIR=${CMAKE_CURRENT_BINARY_DIR}/isolation/specs + TEST_PGPORT=${TEST_PGPORT_LOCAL} ${PRIMARY_TEST_DIR}/pg_regress.sh + ${PG_REGRESS_OPTS_BASE} ${PG_ISOLATION_REGRESS_OPTS_EXTRA} + ${PG_ISOLATION_REGRESS_OPTS_INOUT} ${PG_REGRESS_OPTS_LOCAL_INSTANCE} USES_TERMINAL) list(APPEND _local_install_checks isolationchecklocal-t) @@ -118,6 +105,6 @@ add_subdirectory(t) add_custom_target(installchecklocal-t DEPENDS ${_local_install_checks}) add_custom_target(installcheck-t DEPENDS ${_install_checks}) -if (CMAKE_BUILD_TYPE MATCHES Debug) +if(CMAKE_BUILD_TYPE MATCHES Debug) add_subdirectory(src) -endif (CMAKE_BUILD_TYPE MATCHES Debug) +endif(CMAKE_BUILD_TYPE MATCHES Debug) diff --git a/tsl/test/isolation/CMakeLists.txt b/tsl/test/isolation/CMakeLists.txt index a5e1be39b89..e5c3903db32 100644 --- a/tsl/test/isolation/CMakeLists.txt +++ b/tsl/test/isolation/CMakeLists.txt @@ -1,3 +1,3 @@ -#dummy file to ensure isolation output is created correctly +# dummy file to ensure isolation output is created correctly add_subdirectory(specs) diff --git a/tsl/test/isolation/specs/CMakeLists.txt b/tsl/test/isolation/specs/CMakeLists.txt index 72615c45d99..27127dfc112 100644 --- a/tsl/test/isolation/specs/CMakeLists.txt +++ b/tsl/test/isolation/specs/CMakeLists.txt @@ -1,29 +1,25 @@ -## these tests need MODULE_NAME and cannot be added as is to TEST_FILES -set(TEST_TEMPLATES_MODULE - reorder_deadlock.spec.in - reorder_vs_insert_other_chunk.spec.in -) +# these tests need MODULE_NAME and cannot be added as is to TEST_FILES +set(TEST_TEMPLATES_MODULE reorder_deadlock.spec.in + reorder_vs_insert_other_chunk.spec.in) set(TEST_TEMPLATES_MODULE_DEBUG - reorder_vs_insert.spec.in - reorder_vs_select.spec.in - remote_create_chunk.spec.in - dist_restore_point.spec.in -) + reorder_vs_insert.spec.in reorder_vs_select.spec.in + remote_create_chunk.spec.in dist_restore_point.spec.in) -list(APPEND TEST_FILES +list( + APPEND + TEST_FILES compression_ddl.spec continuous_aggs_insert.spec continuous_aggs_multi.spec continuous_aggs_concurrent_refresh.spec - deadlock_drop_chunks_compress.spec -) + deadlock_drop_chunks_compress.spec) -if (CMAKE_BUILD_TYPE MATCHES Debug) +if(CMAKE_BUILD_TYPE MATCHES Debug) list(APPEND TEST_TEMPLATES_MODULE ${TEST_TEMPLATES_MODULE_DEBUG}) endif(CMAKE_BUILD_TYPE MATCHES Debug) -##need to generate MODULE name for the .spec files +# need to generate MODULE name for the .spec files foreach(TEMP_FILE ${TEST_TEMPLATES_MODULE}) get_filename_component(TEMPLATE ${TEMP_FILE} NAME_WE) set(TEST_FILE ${TEMPLATE}.spec) @@ -31,7 +27,7 @@ foreach(TEMP_FILE ${TEST_TEMPLATES_MODULE}) list(APPEND TEST_FILES "${TEST_FILE}") endforeach(TEMP_FILE) -##generate PG version specific .spec file +# generate PG version specific .spec file foreach(TEMPLATE_FILE ${TEST_TEMPLATES}) get_filename_component(TEMPLATE ${TEMPLATE_FILE} NAME_WE) set(TEST_FILE ${TEMPLATE}-${TEST_VERSION_SUFFIX}.spec) diff --git a/tsl/test/shared/sql/CMakeLists.txt b/tsl/test/shared/sql/CMakeLists.txt index 8b08583abd2..983d56ffd62 100644 --- a/tsl/test/shared/sql/CMakeLists.txt +++ b/tsl/test/shared/sql/CMakeLists.txt @@ -1,38 +1,33 @@ set(TEST_FILES_SHARED - constify_timestamptz_op_interval.sql - constraint_exclusion_prepared.sql - decompress_placeholdervar.sql - dist_gapfill.sql - dist_insert.sql - dist_distinct.sql -) + constify_timestamptz_op_interval.sql constraint_exclusion_prepared.sql + decompress_placeholdervar.sql dist_gapfill.sql dist_insert.sql + dist_distinct.sql) -set(TEST_TEMPLATES_SHARED - gapfill.sql.in - generated_columns.sql.in - ordered_append.sql.in - ordered_append_join.sql.in -) +set(TEST_TEMPLATES_SHARED gapfill.sql.in generated_columns.sql.in + ordered_append.sql.in ordered_append_join.sql.in) -# Regression tests that vary with PostgreSQL version. Generated test -# files are put in the original source directory since all tests must -# be in the same directory. These files are updated when the template -# is edited, but not when the output file is deleted. If the output is -# deleted either recreate it manually, or rerun cmake on the root dir. +# Regression tests that vary with PostgreSQL version. Generated test files are +# put in the original source directory since all tests must be in the same +# directory. These files are updated when the template is edited, but not when +# the output file is deleted. If the output is deleted either recreate it +# manually, or rerun cmake on the root dir. foreach(TEMPLATE_FILE ${TEST_TEMPLATES_SHARED}) string(LENGTH ${TEMPLATE_FILE} TEMPLATE_NAME_LEN) math(EXPR TEMPLATE_NAME_LEN ${TEMPLATE_NAME_LEN}-7) string(SUBSTRING ${TEMPLATE_FILE} 0 ${TEMPLATE_NAME_LEN} TEMPLATE) set(TEST_FILE ${TEMPLATE}-${TEST_VERSION_SUFFIX}.sql) - configure_file(${TEMPLATE_FILE} ${CMAKE_CURRENT_SOURCE_DIR}/${TEST_FILE} COPYONLY) + configure_file(${TEMPLATE_FILE} ${CMAKE_CURRENT_SOURCE_DIR}/${TEST_FILE} + COPYONLY) list(APPEND TEST_FILES_SHARED ${TEST_FILE}) endforeach(TEMPLATE_FILE) -if(DEFINED EXT_GIT_COMMIT_TAG OR DEFINED EXT_GIT_COMMIT_HASH OR DEFINED EXT_GIT_COMMIT_TIME) +if(DEFINED EXT_GIT_COMMIT_TAG + OR DEFINED EXT_GIT_COMMIT_HASH + OR DEFINED EXT_GIT_COMMIT_TIME) list(APPEND TEST_FILES_SHARED build_info.sql) endif() -if (TEST_FILES_SHARED) +if(TEST_FILES_SHARED) list(SORT TEST_FILES_SHARED) endif() file(REMOVE ${TEST_SCHEDULE_SHARED}) @@ -50,6 +45,6 @@ foreach(TEST_FILE ${TEST_FILES_SHARED}) file(APPEND ${TEST_SCHEDULE_SHARED} "\ntest: ") endif() file(APPEND ${TEST_SCHEDULE_SHARED} "${TESTS_TO_RUN} ") - MATH(EXPR GROUP_MEMBERS "(${GROUP_MEMBERS}+1)%${PARALLEL_GROUP_SIZE}") + math(EXPR GROUP_MEMBERS "(${GROUP_MEMBERS}+1)%${PARALLEL_GROUP_SIZE}") endforeach(TEST_FILE) file(APPEND ${TEST_SCHEDULE_SHARED} "\n") diff --git a/tsl/test/sql/CMakeLists.txt b/tsl/test/sql/CMakeLists.txt index b14214f3f58..ebf06847a0b 100644 --- a/tsl/test/sql/CMakeLists.txt +++ b/tsl/test/sql/CMakeLists.txt @@ -1,140 +1,131 @@ set(TEST_FILES - bgw_custom.sql - bgw_policy.sql - compression_bgw.sql - compression_permissions.sql - compression_qualpushdown.sql - continuous_aggs_errors.sql - continuous_aggs_invalidation.sql - continuous_aggs_permissions.sql - continuous_aggs_policy.sql - continuous_aggs_refresh.sql - continuous_aggs_watermark.sql - dist_views.sql - move.sql - partialize_finalize.sql - reorder.sql - skip_scan.sql -) + bgw_custom.sql + bgw_policy.sql + compression_bgw.sql + compression_permissions.sql + compression_qualpushdown.sql + continuous_aggs_errors.sql + continuous_aggs_invalidation.sql + continuous_aggs_permissions.sql + continuous_aggs_policy.sql + continuous_aggs_refresh.sql + continuous_aggs_watermark.sql + dist_views.sql + move.sql + partialize_finalize.sql + reorder.sql + skip_scan.sql) set(TEST_FILES_DEBUG - bgw_db_scheduler.sql - bgw_reorder_drop_chunks.sql - compress_bgw_reorder_drop_chunks.sql - chunk_api.sql - chunk_utils_compression.sql - compression_algos.sql - compression_ddl.sql - compression_errors.sql - compression_hypertable.sql - compression_segment_meta.sql - compression.sql - compress_table.sql - continuous_aggs_bgw_drop_chunks.sql - continuous_aggs_bgw.sql - continuous_aggs_ddl.sql - continuous_aggs_drop_chunks.sql - continuous_aggs_dump.sql - continuous_aggs_multi.sql - continuous_aggs.sql - continuous_aggs_tableam.sql - continuous_aggs_usage.sql - continuous_aggs_policy_run.sql - data_fetcher.sql - data_node_bootstrap.sql - data_node.sql - ddl_hook.sql - debug_notice.sql - deparse.sql - dist_api_calls.sql - dist_commands.sql - dist_compression.sql - dist_ddl.sql - dist_grant.sql - dist_partial_agg.sql - dist_policy.sql - dist_query.sql - dist_util.sql - dist_triggers.sql - dist_backup.sql - read_only.sql - remote_connection_cache.sql - remote_connection.sql - remote_stmt_params.sql - remote_txn_id.sql - remote_txn_resolve.sql - remote_txn.sql - telemetry_community.sql - telemetry_distributed.sql - transparent_decompression_queries.sql - tsl_tables.sql - license.sql -) + bgw_db_scheduler.sql + bgw_reorder_drop_chunks.sql + compress_bgw_reorder_drop_chunks.sql + chunk_api.sql + chunk_utils_compression.sql + compression_algos.sql + compression_ddl.sql + compression_errors.sql + compression_hypertable.sql + compression_segment_meta.sql + compression.sql + compress_table.sql + continuous_aggs_bgw_drop_chunks.sql + continuous_aggs_bgw.sql + continuous_aggs_ddl.sql + continuous_aggs_drop_chunks.sql + continuous_aggs_dump.sql + continuous_aggs_multi.sql + continuous_aggs.sql + continuous_aggs_tableam.sql + continuous_aggs_usage.sql + continuous_aggs_policy_run.sql + data_fetcher.sql + data_node_bootstrap.sql + data_node.sql + ddl_hook.sql + debug_notice.sql + deparse.sql + dist_api_calls.sql + dist_commands.sql + dist_compression.sql + dist_ddl.sql + dist_grant.sql + dist_partial_agg.sql + dist_policy.sql + dist_query.sql + dist_util.sql + dist_triggers.sql + dist_backup.sql + read_only.sql + remote_connection_cache.sql + remote_connection.sql + remote_stmt_params.sql + remote_txn_id.sql + remote_txn_resolve.sql + remote_txn.sql + telemetry_community.sql + telemetry_distributed.sql + transparent_decompression_queries.sql + tsl_tables.sql + license.sql) set(TEST_TEMPLATES - compression_insert.sql.in - continuous_aggs_union_view.sql.in - plan_skip_scan.sql.in - transparent_decompression.sql.in - transparent_decompression_ordered_index.sql.in -) + compression_insert.sql.in continuous_aggs_union_view.sql.in + plan_skip_scan.sql.in transparent_decompression.sql.in + transparent_decompression_ordered_index.sql.in) -if (CMAKE_BUILD_TYPE MATCHES Debug) - list(APPEND TEST_TEMPLATES - continuous_aggs_query.sql.in - dist_hypertable.sql.in - remote_copy.sql.in - ) +if(CMAKE_BUILD_TYPE MATCHES Debug) + list(APPEND TEST_TEMPLATES continuous_aggs_query.sql.in + dist_hypertable.sql.in remote_copy.sql.in) endif(CMAKE_BUILD_TYPE MATCHES Debug) # Check if PostgreSQL was compiled with JIT support set(PG_CONFIG_H "${PG_INCLUDEDIR}/pg_config.h") -if (EXISTS ${PG_CONFIG_H}) +if(EXISTS ${PG_CONFIG_H}) file(STRINGS "${PG_CONFIG_H}" PG_USE_LLVM REGEX "^#[\t ]*define[\t ]+USE_LLVM[\t ]+1.*") - if (PG_USE_LLVM) + if(PG_USE_LLVM) list(APPEND TEST_TEMPLATES jit.sql.in) endif() endif() -# the following tests will run by itself before the parallel -# tests because they fail or are flaky when run in parallel -# dist_views.sql sets some global information, so do not run it -# in parallel +# the following tests will run by itself before the parallel tests because they +# fail or are flaky when run in parallel dist_views.sql sets some global +# information, so do not run it in parallel set(SOLO_TESTS - bgw_db_scheduler - bgw_reorder_drop_chunks - compress_bgw_reorder_drop_chunks - compression_ddl - continuous_aggs_bgw - continuous_aggs_ddl - continuous_aggs_dump - data_fetcher - dist_util - move - remote_connection_cache - remote_copy - remote_txn - remote_txn_resolve - reorder - telemetry_distributed -) + bgw_db_scheduler + bgw_reorder_drop_chunks + compress_bgw_reorder_drop_chunks + compression_ddl + continuous_aggs_bgw + continuous_aggs_ddl + continuous_aggs_dump + data_fetcher + dist_util + move + remote_connection_cache + remote_copy + remote_txn + remote_txn_resolve + reorder + telemetry_distributed) -# Regression tests that vary with PostgreSQL version. Generated test -# files are put in the original source directory since all tests must -# be in the same directory. These files are updated when the template -# is edited, but not when the output file is deleted. If the output is -# deleted either recreate it manually, or rerun cmake on the root dir. +# Regression tests that vary with PostgreSQL version. Generated test files are +# put in the original source directory since all tests must be in the same +# directory. These files are updated when the template is edited, but not when +# the output file is deleted. If the output is deleted either recreate it +# manually, or rerun cmake on the root dir. foreach(TEMPLATE_FILE ${TEST_TEMPLATES}) string(LENGTH ${TEMPLATE_FILE} TEMPLATE_NAME_LEN) math(EXPR TEMPLATE_NAME_LEN ${TEMPLATE_NAME_LEN}-7) string(SUBSTRING ${TEMPLATE_FILE} 0 ${TEMPLATE_NAME_LEN} TEMPLATE) set(TEST_FILE ${TEMPLATE}-${TEST_VERSION_SUFFIX}.sql) - configure_file(${TEMPLATE_FILE} ${CMAKE_CURRENT_SOURCE_DIR}/${TEST_FILE} COPYONLY) + configure_file(${TEMPLATE_FILE} ${CMAKE_CURRENT_SOURCE_DIR}/${TEST_FILE} + COPYONLY) list(APPEND TEST_FILES ${TEST_FILE}) endforeach(TEMPLATE_FILE) -if (CMAKE_BUILD_TYPE MATCHES Debug) +if(CMAKE_BUILD_TYPE MATCHES Debug) list(APPEND TEST_FILES ${TEST_FILES_DEBUG}) endif(CMAKE_BUILD_TYPE MATCHES Debug) @@ -152,7 +143,7 @@ foreach(SOLO_TEST_NAME ${SOLO_TESTS}) string(REGEX REPLACE "(.+)" "\\1.sql" TEST_FILE ${SOLO_TEST_NAME}) if(TEST_FILE IN_LIST TEST_FILES) file(APPEND ${TEST_SCHEDULE} "test: ${SOLO_TEST_NAME}\n") - endif () + endif() endforeach(SOLO_TEST_NAME) set(GROUP_MEMBERS 0) @@ -163,7 +154,7 @@ foreach(TEST_FILE ${TEST_FILES}) file(APPEND ${TEST_SCHEDULE} "\ntest: ") endif() file(APPEND ${TEST_SCHEDULE} "${TESTS_TO_RUN} ") - MATH(EXPR GROUP_MEMBERS "(${GROUP_MEMBERS}+1)%${PARALLEL_GROUP_SIZE}") + math(EXPR GROUP_MEMBERS "(${GROUP_MEMBERS}+1)%${PARALLEL_GROUP_SIZE}") endif() endforeach(TEST_FILE) file(APPEND ${TEST_SCHEDULE} "\n") diff --git a/tsl/test/src/CMakeLists.txt b/tsl/test/src/CMakeLists.txt index acd7252442a..e2e1bb0a301 100644 --- a/tsl/test/src/CMakeLists.txt +++ b/tsl/test/src/CMakeLists.txt @@ -1,22 +1,23 @@ set(SOURCES - data_node.c - deparse.c - test_chunk_stats.c - test_compression.c - test_continuous_agg.c - test_ddl_hook.c - test_dist_util.c -) + data_node.c + deparse.c + test_chunk_stats.c + test_compression.c + test_continuous_agg.c + test_ddl_hook.c + test_dist_util.c) include(${PROJECT_SOURCE_DIR}/tsl/src/build-defs.cmake) add_library(${TSL_TESTS_LIB_NAME} OBJECT ${SOURCES}) -# Since the test library will be linked into the loadable extension -# module, it needs to be compiled as position-independent code -# (e.g., the -fPIC compiler flag for GCC) -set_target_properties(${TSL_TESTS_LIB_NAME} PROPERTIES POSITION_INDEPENDENT_CODE ON) -target_include_directories(${TSL_TESTS_LIB_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/test/src) +# Since the test library will be linked into the loadable extension module, it +# needs to be compiled as position-independent code (e.g., the -fPIC compiler +# flag for GCC) +set_target_properties(${TSL_TESTS_LIB_NAME} PROPERTIES POSITION_INDEPENDENT_CODE + ON) +target_include_directories(${TSL_TESTS_LIB_NAME} + PRIVATE ${CMAKE_SOURCE_DIR}/test/src) target_include_directories(${TSL_TESTS_LIB_NAME} PRIVATE ${PG_INCLUDEDIR}) target_compile_definitions(${TSL_TESTS_LIB_NAME} PUBLIC TS_SUBMODULE) diff --git a/tsl/test/src/remote/CMakeLists.txt b/tsl/test/src/remote/CMakeLists.txt index c12536997d0..c01665d5a27 100644 --- a/tsl/test/src/remote/CMakeLists.txt +++ b/tsl/test/src/remote/CMakeLists.txt @@ -1,17 +1,18 @@ set(SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/node_killer.c - ${CMAKE_CURRENT_SOURCE_DIR}/connection.c - ${CMAKE_CURRENT_SOURCE_DIR}/connection_cache.c - ${CMAKE_CURRENT_SOURCE_DIR}/async.c - ${CMAKE_CURRENT_SOURCE_DIR}/remote_exec.c - ${CMAKE_CURRENT_SOURCE_DIR}/test_session.c - ${CMAKE_CURRENT_SOURCE_DIR}/txn_id.c - ${CMAKE_CURRENT_SOURCE_DIR}/dist_commands.c - ${CMAKE_CURRENT_SOURCE_DIR}/txn_persistent_record.c - ${CMAKE_CURRENT_SOURCE_DIR}/txn_resolve.c - ${CMAKE_CURRENT_SOURCE_DIR}/stmt_params.c - ${CMAKE_CURRENT_SOURCE_DIR}/scan_exec_debug.c -) + ${CMAKE_CURRENT_SOURCE_DIR}/node_killer.c + ${CMAKE_CURRENT_SOURCE_DIR}/connection.c + ${CMAKE_CURRENT_SOURCE_DIR}/connection_cache.c + ${CMAKE_CURRENT_SOURCE_DIR}/async.c + ${CMAKE_CURRENT_SOURCE_DIR}/remote_exec.c + ${CMAKE_CURRENT_SOURCE_DIR}/test_session.c + ${CMAKE_CURRENT_SOURCE_DIR}/txn_id.c + ${CMAKE_CURRENT_SOURCE_DIR}/dist_commands.c + ${CMAKE_CURRENT_SOURCE_DIR}/txn_persistent_record.c + ${CMAKE_CURRENT_SOURCE_DIR}/txn_resolve.c + ${CMAKE_CURRENT_SOURCE_DIR}/stmt_params.c + ${CMAKE_CURRENT_SOURCE_DIR}/scan_exec_debug.c) target_sources(${TSL_TESTS_LIB_NAME} PRIVATE ${SOURCES}) -target_include_directories(${TSL_TESTS_LIB_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/src/remote ${PG_INCLUDEDIR}) +target_include_directories( + ${TSL_TESTS_LIB_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/src/remote + ${PG_INCLUDEDIR}) diff --git a/tsl/test/ssl/CMakeLists.txt b/tsl/test/ssl/CMakeLists.txt index 018f1f7a3fc..1bb75e12129 100644 --- a/tsl/test/ssl/CMakeLists.txt +++ b/tsl/test/ssl/CMakeLists.txt @@ -2,53 +2,52 @@ # # -# We need to ensure, that private key files have user only -# access permissions in order to work. +# We need to ensure, that private key files have user only access permissions in +# order to work. # -# Certificates for users uses the MD5 sum in hex for the base file -# name. To generate a base filename, pass the role name *without -# terminating newline or null* into md5sum, for example: +# Certificates for users uses the MD5 sum in hex for the base file name. To +# generate a base filename, pass the role name *without terminating newline or +# null* into md5sum, for example: # -# echo -n cluster_super_user | md5sum +# echo -n cluster_super_user | md5sum # set(TEST_USERS_DIR "${TEST_OUTPUT_DIR}/timescaledb/certs") # CA cert -file(COPY ts_root.crt - DESTINATION ${TEST_OUTPUT_DIR}) +file(COPY ts_root.crt DESTINATION ${TEST_OUTPUT_DIR}) # Data node cert and private key -file(COPY ts_data_node.crt - DESTINATION ${TEST_OUTPUT_DIR}) +file(COPY ts_data_node.crt DESTINATION ${TEST_OUTPUT_DIR}) -file(COPY ts_data_node.key - DESTINATION ${TEST_OUTPUT_DIR} - NO_SOURCE_PERMISSIONS - FILE_PERMISSIONS OWNER_READ OWNER_WRITE) +file( + COPY ts_data_node.key + DESTINATION ${TEST_OUTPUT_DIR} + NO_SOURCE_PERMISSIONS + FILE_PERMISSIONS OWNER_READ OWNER_WRITE) # User cluster_super_user -file(COPY f458066b3557e1db0a54e19f4ab201d9.crt - DESTINATION ${TEST_USERS_DIR}) +file(COPY f458066b3557e1db0a54e19f4ab201d9.crt DESTINATION ${TEST_USERS_DIR}) -file(COPY f458066b3557e1db0a54e19f4ab201d9.key - DESTINATION ${TEST_USERS_DIR} - NO_SOURCE_PERMISSIONS - FILE_PERMISSIONS OWNER_READ OWNER_WRITE) +file( + COPY f458066b3557e1db0a54e19f4ab201d9.key + DESTINATION ${TEST_USERS_DIR} + NO_SOURCE_PERMISSIONS + FILE_PERMISSIONS OWNER_READ OWNER_WRITE) # User test_role_1 -file(COPY 83d86aa56283c8f681d9fc710e8240ad.crt - DESTINATION ${TEST_USERS_DIR}) +file(COPY 83d86aa56283c8f681d9fc710e8240ad.crt DESTINATION ${TEST_USERS_DIR}) -file(COPY 83d86aa56283c8f681d9fc710e8240ad.key - DESTINATION ${TEST_USERS_DIR} - NO_SOURCE_PERMISSIONS - FILE_PERMISSIONS OWNER_READ OWNER_WRITE) +file( + COPY 83d86aa56283c8f681d9fc710e8240ad.key + DESTINATION ${TEST_USERS_DIR} + NO_SOURCE_PERMISSIONS + FILE_PERMISSIONS OWNER_READ OWNER_WRITE) -file(COPY 2beea6688fa571d4ebacdaf472fb9eb3.crt - DESTINATION ${TEST_USERS_DIR}) +file(COPY 2beea6688fa571d4ebacdaf472fb9eb3.crt DESTINATION ${TEST_USERS_DIR}) -file(COPY 2beea6688fa571d4ebacdaf472fb9eb3.key - DESTINATION ${TEST_USERS_DIR} - NO_SOURCE_PERMISSIONS - FILE_PERMISSIONS OWNER_READ OWNER_WRITE) +file( + COPY 2beea6688fa571d4ebacdaf472fb9eb3.key + DESTINATION ${TEST_USERS_DIR} + NO_SOURCE_PERMISSIONS + FILE_PERMISSIONS OWNER_READ OWNER_WRITE) diff --git a/tsl/test/t/CMakeLists.txt b/tsl/test/t/CMakeLists.txt index cd78835d6aa..cc54c4e04bb 100644 --- a/tsl/test/t/CMakeLists.txt +++ b/tsl/test/t/CMakeLists.txt @@ -1,7 +1,5 @@ -set(PROVE_TEST_FILES - 001_simple_multinode.pl -) +set(PROVE_TEST_FILES 001_simple_multinode.pl) foreach(P_FILE ${PROVE_TEST_FILES}) - configure_file(${P_FILE} ${CMAKE_CURRENT_BINARY_DIR}/${P_FILE} COPYONLY) + configure_file(${P_FILE} ${CMAKE_CURRENT_BINARY_DIR}/${P_FILE} COPYONLY) endforeach(P_FILE)