mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-08-26 15:07:19 +02:00
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
41 lines
695 B
C
41 lines
695 B
C
/* contrib/ltree/crc32.c */
|
|
|
|
/*
|
|
* Implements CRC-32, as used in ltree.
|
|
*
|
|
* Note that the CRC is used in the on-disk format of GiST indexes, so we
|
|
* must stay backwards-compatible!
|
|
*/
|
|
|
|
#include "postgres.h"
|
|
#include "ltree.h"
|
|
|
|
#ifdef LOWER_NODE
|
|
#include <ctype.h>
|
|
#define TOLOWER(x) tolower((unsigned char) (x))
|
|
#else
|
|
#define TOLOWER(x) (x)
|
|
#endif
|
|
|
|
#include "crc32.h"
|
|
#include "utils/pg_crc.h"
|
|
|
|
unsigned int
|
|
ltree_crc32_sz(const char *buf, int size)
|
|
{
|
|
pg_crc32 crc;
|
|
const char *p = buf;
|
|
|
|
INIT_TRADITIONAL_CRC32(crc);
|
|
while (size > 0)
|
|
{
|
|
char c = (char) TOLOWER(*p);
|
|
|
|
COMP_TRADITIONAL_CRC32(crc, &c, 1);
|
|
size--;
|
|
p++;
|
|
}
|
|
FIN_TRADITIONAL_CRC32(crc);
|
|
return (unsigned int) crc;
|
|
}
|