p->day = INT_MAX;
p->month = INT_MAX;
#ifdef HAVE_INT64_TIMESTAMP
- p->time = INT64CONST(0x7FFFFFFFFFFFFFFF);
+ p->time = INT64_MAX;
#else
p->time = DBL_MAX;
#endif
p->day = INT_MAX;
p->month = INT_MAX;
#ifdef HAVE_INT64_TIMESTAMP
- p->time = INT64CONST(0x7FFFFFFFFFFFFFFF);
+ p->time = INT64_MAX;
#else
p->time = DBL_MAX;
#endif
*/
#include "postgres.h"
+#include <limits.h>
+
#include "access/gist.h"
#include "access/skey.h"
cand = 1;
while (len > MAXNUMRANGE * 2)
{
- min = 0x7fffffff;
+ min = INT_MAX;
for (i = 2; i < len; i += 2)
if (min > (dr[i] - dr[i - 1]))
{
#include <sys/resource.h> /* for getrlimit */
#endif
-#ifndef INT64_MAX
-#define INT64_MAX INT64CONST(0x7FFFFFFFFFFFFFFF)
-#endif
-
#ifndef M_PI
#define M_PI 3.14159265358979323846
#endif
*/
if (strncmp(ptr, "9223372036854775808", 19) == 0)
{
- result = -INT64CONST(0x7fffffffffffffff) - 1;
+ result = INT64_MIN;
ptr += 19;
goto gotdigits;
}
{
LWLockAcquireWithVar(&WALInsertLocks[i].l.lock,
&WALInsertLocks[i].l.insertingAt,
- UINT64CONST(0xFFFFFFFFFFFFFFFF));
+ UINT64_MAX);
}
LWLockAcquireWithVar(&WALInsertLocks[i].l.lock,
&WALInsertLocks[i].l.insertingAt,
#include "postgres.h"
+#include <limits.h>
+
#include "catalog/pg_collation.h"
#include "commands/defrem.h"
#include "tsearch/ts_locale.h"
int pos = *p;
*q = -1;
- *p = 0x7fffffff;
+ *p = INT_MAX;
for (j = 0; j < query->size; j++)
{
for (f = 0; f < max_fragments; f++)
{
maxitems = 0;
- minwords = 0x7fffffff;
+ minwords = INT32_MAX;
minI = -1;
/*
*/
if (strncmp(ptr, "9223372036854775808", 19) == 0)
{
- tmp = -INT64CONST(0x7fffffffffffffff) - 1;
+ tmp = INT64_MIN;
ptr += 19;
goto gotdigits;
}
* Avoid problems with the most negative integer not being representable
* as a positive integer.
*/
- if (value == (-INT64CONST(0x7FFFFFFFFFFFFFFF) - 1))
+ if (value == INT64_MIN)
{
memcpy(a, "-9223372036854775808", 21);
return;
#define SAMESIGN(a,b) (((a) < 0) == ((b) < 0))
-#ifndef INT64_MAX
-#define INT64_MAX INT64CONST(0x7FFFFFFFFFFFFFFF)
-#endif
-
-#ifndef INT64_MIN
-#define INT64_MIN (-INT64CONST(0x7FFFFFFFFFFFFFFF) - 1)
-#endif
-
/* Set at postmaster start */
TimestampTz PgStartTime;
*/
#include "postgres.h"
+#include <limits.h>
#include <math.h>
#include "tsearch/ts_utils.h"
memset(qr->operandexist, 0, sizeof(bool) * qr->query->size);
- ext->p = 0x7fffffff;
+ ext->p = INT_MAX;
ext->q = 0;
ptr = doc + ext->pos;
/* txid will be signed int8 in database, so must limit to 63 bits */
-#define MAX_TXID UINT64CONST(0x7FFFFFFFFFFFFFFF)
+#define MAX_TXID ((uint64) INT64_MAX)
/* Use unsigned variant internally */
typedef uint64 txid;
typedef uint16 bits16; /* >= 16 bits */
typedef uint32 bits32; /* >= 32 bits */
+/* should be defined in stdint.h, but we guarantee them here */
+#ifndef INT8_MIN
+#define INT8_MIN (-0x7F-1)
+#endif
+#ifndef INT8_MAX
+#define INT8_MAX (0x7F)
+#endif
+#ifndef INT16_MIN
+#define INT16_MIN (-0x7FFF-1)
+#endif
+#ifndef INT16_MAX
+#define INT16_MAX (0x7FFF)
+#endif
+#ifndef INT32_MIN
+#define INT32_MIN (-0x7FFFFFFF-1)
+#endif
+#ifndef INT32_MAX
+#define INT32_MAX (0x7FFFFFFF)
+#endif
+
+#ifndef UINT8_MAX
+#define UINT8_MAX (0xFF)
+#endif
+#ifndef UINT16_MAX
+#define UINT16_MAX (0xFFFF)
+#endif
+#ifndef UINT32_MAX
+#define UINT32_MAX (0xFFFFFFFF)
+#endif
+
/*
* 64-bit integers
*/
#define UINT64CONST(x) ((uint64) x)
#endif
+/* should be defined in stdint.h, but we guarantee them here */
+#ifndef INT64_MIN
+#define INT64_MIN (-INT64CONST(0x7FFFFFFFFFFFFFFF) - 1)
+#endif
+#ifndef INT64_MAX
+#define INT64_MAX INT64CONST(0x7FFFFFFFFFFFFFFF)
+#endif
+#ifndef UINT64_MAX
+#define UINT64_MAX UINT64CONST(0xFFFFFFFFFFFFFFFF)
+#endif
+
/* snprintf format strings to use for 64-bit integers */
#define INT64_FORMAT "%" INT64_MODIFIER "d"
#define UINT64_FORMAT "%" INT64_MODIFIER "u"
* DT_NOBEGIN represents timestamp -infinity; DT_NOEND represents +infinity
*/
#ifdef HAVE_INT64_TIMESTAMP
-#define DT_NOBEGIN (-INT64CONST(0x7fffffffffffffff) - 1)
-#define DT_NOEND (INT64CONST(0x7fffffffffffffff))
+#define DT_NOBEGIN INT64_MIN
+#define DT_NOEND INT64_MAX
#else /* !HAVE_INT64_TIMESTAMP */
#ifdef HUGE_VAL
#define DT_NOBEGIN (-HUGE_VAL)
INSTRUMENT_TIMER = 1 << 0, /* needs timer (and row counts) */
INSTRUMENT_BUFFERS = 1 << 1, /* needs buffer usage */
INSTRUMENT_ROWS = 1 << 2, /* needs row count */
- INSTRUMENT_ALL = 0x7FFFFFFF
+ INSTRUMENT_ALL = INT32_MAX
} InstrumentOption;
typedef struct Instrumentation
CREATE_TABLE_LIKE_INDEXES = 1 << 2,
CREATE_TABLE_LIKE_STORAGE = 1 << 3,
CREATE_TABLE_LIKE_COMMENTS = 1 << 4,
- CREATE_TABLE_LIKE_ALL = 0x7FFFFFFF
+ CREATE_TABLE_LIKE_ALL = INT32_MAX
} TableLikeOption;
/*
/*
* Set the upper and lower bounds of sequence values.
*/
-#define SEQ_MAXVALUE INT64CONST(0x7FFFFFFFFFFFFFFF)
+#define SEQ_MAXVALUE INT64_MAX
#define SEQ_MINVALUE (-SEQ_MAXVALUE)
/*
* the older rand() function, which is often different from --- and
* considerably inferior to --- random().
*/
-#define MAX_RANDOM_VALUE (0x7FFFFFFF)
+#define MAX_RANDOM_VALUE INT32_MAX
/*
* On PPC machines, decide whether to use the mutex hint bit in LWARX
pg_atomic_fetch_sub_u64(volatile pg_atomic_uint64 *ptr, int64 sub_)
{
AssertPointerAlignment(ptr, 8);
- Assert(sub_ != -INT64CONST(0x7FFFFFFFFFFFFFFF) - 1);
+ Assert(sub_ != INT64_MIN);
return pg_atomic_fetch_sub_u64_impl(ptr, sub_);
}
pg_atomic_sub_fetch_u64(volatile pg_atomic_uint64 *ptr, int64 sub_)
{
AssertPointerAlignment(ptr, 8);
- Assert(sub_ != -INT64CONST(0x7FFFFFFFFFFFFFFF) - 1);
+ Assert(sub_ != INT64_MIN);
return pg_atomic_sub_fetch_u64_impl(ptr, sub_);
}
* at that point. It's earlier than all normal sequence numbers,
* and is only used by recovered prepared transactions
*/
-#define InvalidSerCommitSeqNo ((SerCommitSeqNo) UINT64CONST(0xFFFFFFFFFFFFFFFF))
+#define InvalidSerCommitSeqNo ((SerCommitSeqNo) UINT64_MAX)
#define RecoverySerCommitSeqNo ((SerCommitSeqNo) 1)
#define FirstNormalSerCommitSeqNo ((SerCommitSeqNo) 2)
/*
* Infinity and minus infinity must be the max and min values of DateADT.
- * We could use INT_MIN and INT_MAX here, but seems better to not assume that
- * int32 == int.
*/
-#define DATEVAL_NOBEGIN ((DateADT) (-0x7fffffff - 1))
-#define DATEVAL_NOEND ((DateADT) 0x7fffffff)
+#define DATEVAL_NOBEGIN ((DateADT) INT32_MIN)
+#define DATEVAL_NOEND ((DateADT) INT32_MAX)
#define DATE_NOBEGIN(j) ((j) = DATEVAL_NOBEGIN)
#define DATE_IS_NOBEGIN(j) ((j) == DATEVAL_NOBEGIN)