blob: 96de99144a89a784dfa86075a4736282fc7e1634 [file] [log] [blame]
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