mirror of
https://github.com/postgres/postgres.git
synced 2025-11-10 17:42:29 +03:00
Add parentheses to macros when args are used in computations. Without
them, the executation behavior could be unexpected.
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
/* -----------------------------------------------------------------------
|
||||
* formatting.c
|
||||
*
|
||||
* $PostgreSQL: pgsql/src/backend/utils/adt/formatting.c,v 1.86 2005/03/26 00:41:31 tgl Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/utils/adt/formatting.c,v 1.87 2005/05/25 21:40:40 momjian Exp $
|
||||
*
|
||||
*
|
||||
* Portions Copyright (c) 1999-2005, PostgreSQL Global Development Group
|
||||
@@ -171,7 +171,7 @@ static char *months_full[] = {
|
||||
* AC / DC
|
||||
* ----------
|
||||
*/
|
||||
#define YEAR_ABS(_y) (_y <= 0 ? -(_y -1) : _y)
|
||||
#define YEAR_ABS(_y) ((_y) <= 0 ? -((_y) - 1) : _y)
|
||||
#define BC_STR_ORIG " BC"
|
||||
|
||||
#define A_D_STR "A.D."
|
||||
@@ -280,15 +280,15 @@ typedef struct
|
||||
*/
|
||||
#define NUM_F_DECIMAL (1 << 1)
|
||||
#define NUM_F_LDECIMAL (1 << 2)
|
||||
#define NUM_F_ZERO (1 << 3)
|
||||
#define NUM_F_ZERO (1 << 3)
|
||||
#define NUM_F_BLANK (1 << 4)
|
||||
#define NUM_F_FILLMODE (1 << 5)
|
||||
#define NUM_F_LSIGN (1 << 6)
|
||||
#define NUM_F_BRACKET (1 << 7)
|
||||
#define NUM_F_MINUS (1 << 8)
|
||||
#define NUM_F_PLUS (1 << 9)
|
||||
#define NUM_F_PLUS (1 << 9)
|
||||
#define NUM_F_ROMAN (1 << 10)
|
||||
#define NUM_F_MULTI (1 << 11)
|
||||
#define NUM_F_MULTI (1 << 11)
|
||||
#define NUM_F_PLUS_POST (1 << 12)
|
||||
#define NUM_F_MINUS_POST (1 << 13)
|
||||
|
||||
@@ -457,13 +457,13 @@ static int dch_date(int arg, char *inout, int suf, int flag, FormatNode *node, v
|
||||
* Suffix tests
|
||||
* ----------
|
||||
*/
|
||||
#define S_THth(_s) (((_s & DCH_S_TH) || (_s & DCH_S_th)) ? 1 : 0)
|
||||
#define S_TH(_s) ((_s & DCH_S_TH) ? 1 : 0)
|
||||
#define S_th(_s) ((_s & DCH_S_th) ? 1 : 0)
|
||||
#define S_TH_TYPE(_s) ((_s & DCH_S_TH) ? TH_UPPER : TH_LOWER)
|
||||
#define S_THth(_s) ((((_s) & DCH_S_TH) || ((_s) & DCH_S_th)) ? 1 : 0)
|
||||
#define S_TH(_s) (((_s) & DCH_S_TH) ? 1 : 0)
|
||||
#define S_th(_s) (((_s) & DCH_S_th) ? 1 : 0)
|
||||
#define S_TH_TYPE(_s) (((_s) & DCH_S_TH) ? TH_UPPER : TH_LOWER)
|
||||
|
||||
#define S_FM(_s) ((_s & DCH_S_FM) ? 1 : 0)
|
||||
#define S_SP(_s) ((_s & DCH_S_SP) ? 1 : 0)
|
||||
#define S_FM(_s) (((_s) & DCH_S_FM) ? 1 : 0)
|
||||
#define S_SP(_s) (((_s) & DCH_S_SP) ? 1 : 0)
|
||||
|
||||
/* ----------
|
||||
* Suffixes definition for DATE-TIME TO/FROM CHAR
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/* ----------
|
||||
* pg_lzcompress.c -
|
||||
*
|
||||
* $PostgreSQL: pgsql/src/backend/utils/adt/pg_lzcompress.c,v 1.18 2003/11/29 19:51:59 pgsql Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/utils/adt/pg_lzcompress.c,v 1.19 2005/05/25 21:40:41 momjian Exp $
|
||||
*
|
||||
* This is an implementation of LZ compression for PostgreSQL.
|
||||
* It uses a simple history table and generates 2-3 byte tags
|
||||
@@ -328,8 +328,8 @@ do { \
|
||||
do { \
|
||||
if ((__ctrl & 0xff) == 0) \
|
||||
{ \
|
||||
*__ctrlp = __ctrlb; \
|
||||
__ctrlp = __buf++; \
|
||||
*(__ctrlp) = __ctrlb; \
|
||||
__ctrlp = (__buf)++; \
|
||||
__ctrlb = 0; \
|
||||
__ctrl = 1; \
|
||||
} \
|
||||
@@ -346,7 +346,7 @@ do { \
|
||||
#define pglz_out_literal(_ctrlp,_ctrlb,_ctrl,_buf,_byte) \
|
||||
do { \
|
||||
pglz_out_ctrl(_ctrlp,_ctrlb,_ctrl,_buf); \
|
||||
*_buf++ = (unsigned char)(_byte); \
|
||||
*(_buf)++ = (unsigned char)(_byte); \
|
||||
_ctrl <<= 1; \
|
||||
} while (0)
|
||||
|
||||
@@ -366,14 +366,14 @@ do { \
|
||||
_ctrl <<= 1; \
|
||||
if (_len > 17) \
|
||||
{ \
|
||||
_buf[0] = (unsigned char)((((_off) & 0xf00) >> 4) | 0x0f); \
|
||||
_buf[1] = (unsigned char)((_off & 0xff)); \
|
||||
_buf[2] = (unsigned char)((_len) - 18); \
|
||||
_buf += 3; \
|
||||
(_buf)[0] = (unsigned char)((((_off) & 0xf00) >> 4) | 0x0f); \
|
||||
(_buf)[1] = (unsigned char)(((_off) & 0xff)); \
|
||||
(_buf)[2] = (unsigned char)((_len) - 18); \
|
||||
(_buf) += 3; \
|
||||
} else { \
|
||||
_buf[0] = (unsigned char)((((_off) & 0xf00) >> 4) | (_len - 3)); \
|
||||
_buf[1] = (unsigned char)((_off) & 0xff); \
|
||||
_buf += 2; \
|
||||
(_buf)[0] = (unsigned char)((((_off) & 0xf00) >> 4) | ((_len) - 3)); \
|
||||
(_buf)[1] = (unsigned char)((_off) & 0xff); \
|
||||
(_buf) += 2; \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/utils/sort/tuplesort.c,v 1.48 2005/05/06 17:24:54 tgl Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/utils/sort/tuplesort.c,v 1.49 2005/05/25 21:40:41 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -1564,7 +1564,7 @@ tuplesort_restorepos(Tuplesortstate *state)
|
||||
*/
|
||||
|
||||
#define HEAPCOMPARE(tup1,index1,tup2,index2) \
|
||||
(checkIndex && (index1 != index2) ? index1 - index2 : \
|
||||
(checkIndex && (index1 != index2) ? (index1) - (index2) : \
|
||||
COMPARETUP(state, tup1, tup2))
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user