| From 64c17f08c4a78cf6063651632d95906ab3bcb41b Mon Sep 17 00:00:00 2001 |
| From: Sven Klemm <sven@timescale.com> |
| Date: Sat, 19 Sep 2020 17:43:52 +0200 |
| Subject: [PATCH] Allow building against PG13 source |
| |
| This patch adjusts the version checks to allow building against |
| postgres 13. It also adjusts the cmake version check to allow |
| building against RC and devel versions. |
| |
| Signed-off-by: Maxim Kochetkov <fido_max@inbox.ru> |
| Fetch from: https://github.com/timescale/timescaledb/commit/21dc9b9c1a307e46eda5fa621488ebeb6ee9636c.patch |
| --- |
| CMakeLists.txt | 18 ++++++++---------- |
| src/compat.h | 7 ++++++- |
| 2 files changed, 14 insertions(+), 11 deletions(-) |
| |
| diff --git a/CMakeLists.txt b/CMakeLists.txt |
| index 8288b444..ce6e9d48 100644 |
| --- a/CMakeLists.txt |
| +++ b/CMakeLists.txt |
| @@ -221,27 +221,25 @@ execute_process( |
| OUTPUT_VARIABLE PG_VERSION_STRING |
| OUTPUT_STRIP_TRAILING_WHITESPACE) |
| |
| -if (NOT ${PG_VERSION_STRING} MATCHES "^PostgreSQL[ ]+([0-9]+)\\.([0-9]+)(\\.([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 () |
| |
| set(PG_VERSION_MAJOR ${CMAKE_MATCH_1}) |
| -set(PG_VERSION_MINOR ${CMAKE_MATCH_2}) |
| -set(PG_VERSION_PATCH ${CMAKE_MATCH_4}) |
| - |
| -if (NOT ${PG_VERSION_PATCH} OR ${PG_VERSION_PATCH} EQUAL "") |
| - set(PG_VERSION "${PG_VERSION_MAJOR}.${PG_VERSION_MINOR}") |
| -else () |
| - set(PG_VERSION "${PG_VERSION_MAJOR}.${PG_VERSION_MINOR}.${PG_VERSION_PATCH}") |
| +if (${CMAKE_MATCH_COUNT} GREATER "2" ) |
| + set(PG_VERSION_MINOR ${CMAKE_MATCH_3}) |
| +else() |
| + set(PG_VERSION_MINOR 0) |
| 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 "11") OR |
| - (${PG_VERSION_MAJOR} GREATER "12")) |
| - message(FATAL_ERROR "TimescaleDB only supports PostgreSQL 11 and 12") |
| + (${PG_VERSION_MAJOR} GREATER "13")) |
| + message(FATAL_ERROR "TimescaleDB only supports PostgreSQL 11, 12 and 13") |
| endif() |
| |
| # Get PostgreSQL configuration from pg_config |
| diff --git a/src/compat.h b/src/compat.h |
| index 475217c6..267bb09a 100644 |
| --- a/src/compat.h |
| +++ b/src/compat.h |
| @@ -24,15 +24,20 @@ |
| |
| #define is_supported_pg_version_11(version) ((version >= 110000) && (version < 120000)) |
| #define is_supported_pg_version_12(version) ((version >= 120000) && (version < 130000)) |
| +#define is_supported_pg_version_13(version) ((version >= 130000) && (version < 140000)) |
| |
| #define is_supported_pg_version(version) \ |
| - (is_supported_pg_version_11(version) || is_supported_pg_version_12(version)) |
| + (is_supported_pg_version_11(version) || is_supported_pg_version_12(version) || \ |
| + is_supported_pg_version_13(version)) |
| |
| #define PG11 is_supported_pg_version_11(PG_VERSION_NUM) |
| #define PG12 is_supported_pg_version_12(PG_VERSION_NUM) |
| +#define PG13 is_supported_pg_version_13(PG_VERSION_NUM) |
| |
| #define PG12_LT PG11 |
| #define PG12_GE !(PG12_LT) |
| +#define PG13_LT !(PG13) |
| +#define PG13_GE PG13 |
| |
| #if !(is_supported_pg_version(PG_VERSION_NUM)) |
| #error "Unsupported PostgreSQL version" |
| -- |
| 2.29.2 |
| |