aboutsummaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorDavid Rowley <drowley@postgresql.org>2021-07-29 12:01:23 +1200
committerDavid Rowley <drowley@postgresql.org>2021-07-29 12:01:23 +1200
commit245de48455daaf51f2f3e8b198d87b5dd9fd4516 (patch)
tree018b8721d33d2a93862860d6aa207c9b08dbbe07 /contrib
parent15f16ec6511cf50374b09876e39c6939f2da0f08 (diff)
downloadpostgresql-245de48455daaf51f2f3e8b198d87b5dd9fd4516.tar.gz
postgresql-245de48455daaf51f2f3e8b198d87b5dd9fd4516.zip
Adjust MSVC build scripts to parse Makefiles for defines
This adjusts the MSVC build scripts to look at the compile flags mentioned in the Makefile to look for -D arguments in order to determine which constants should be defined in Visual Studio builds. One small anomaly that appeared as a result of this change is that the Makefile for the ltree contrib module defined LOWER_NODE, but this was not properly defined in the MSVC build scripts. This meant that MSVC builds would differ in case sensitivity in the ltree module when compared to builds using a make build environment. To maintain the same behavior here we remove the -DLOWER_NODE from the Makefile and just always define it in ltree.h for non-MSVC builds. We need to maintain the old behavior here as this affects the on-disk compatibility of GiST indexes when using the ltree type. The only other resulting change here is that REFINT_VERBOSE is now defined for the autoinc, insert_username and moddatetime contrib modules. Previously on MSVC, this was only defined for the refint module. This aligns the behavior to build environments using make as all 4 of these modules share the same Makefile. Reviewed-by: Tom Lane Discussion: https://postgr.es/m/CAApHDvpo6g5csCTjc_0C7DMvgFPomVb0Rh-AcW5afd=Ya=LRuw@mail.gmail.com
Diffstat (limited to 'contrib')
-rw-r--r--contrib/ltree/Makefile1
-rw-r--r--contrib/ltree/crc32.c1
-rw-r--r--contrib/ltree/ltree.h13
3 files changed, 14 insertions, 1 deletions
diff --git a/contrib/ltree/Makefile b/contrib/ltree/Makefile
index b16a5668523..770769a730d 100644
--- a/contrib/ltree/Makefile
+++ b/contrib/ltree/Makefile
@@ -12,7 +12,6 @@ OBJS = \
ltree_op.o \
ltxtquery_io.o \
ltxtquery_op.o
-PG_CPPFLAGS = -DLOWER_NODE
EXTENSION = ltree
DATA = ltree--1.1--1.2.sql ltree--1.1.sql ltree--1.0--1.1.sql
diff --git a/contrib/ltree/crc32.c b/contrib/ltree/crc32.c
index 8fed3346e8a..134f46a805e 100644
--- a/contrib/ltree/crc32.c
+++ b/contrib/ltree/crc32.c
@@ -8,6 +8,7 @@
*/
#include "postgres.h"
+#include "ltree.h"
#ifdef LOWER_NODE
#include <ctype.h>
diff --git a/contrib/ltree/ltree.h b/contrib/ltree/ltree.h
index dc68a0c212f..5b4be5e680a 100644
--- a/contrib/ltree/ltree.h
+++ b/contrib/ltree/ltree.h
@@ -17,6 +17,19 @@
*/
#define LTREE_LABEL_MAX_CHARS 255
+/*
+ * LOWER_NODE used to be defined in the Makefile via the compile flags.
+ * However the MSVC build scripts neglected to do the same which resulted in
+ * MSVC builds not using LOWER_NODE. Since then, the MSVC scripts have been
+ * modified to look for -D compile flags in Makefiles, so here, in order to
+ * get the historic behavior of LOWER_NODE not being defined on MSVC, we only
+ * define it when not building in that environment. This is important as we
+ * want to maintain the same LOWER_NODE behavior after a pg_update.
+ */
+#ifndef _MSC_VER
+#define LOWER_NODE
+#endif
+
typedef struct
{
uint16 len; /* label string length in bytes */