mirror of
https://github.com/postgres/postgres.git
synced 2025-10-24 01:29:19 +03:00
Redefine Datum as uintptr_t, instead of unsigned long.
This is more in keeping with modern practice, and is a first step towards porting to Win64 (which has sizeof(pointer) > sizeof(long)). Tsutomu Yamada, Magnus Hagander, Tom Lane
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
* Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $PostgreSQL: pgsql/src/include/access/tupmacs.h,v 1.36 2009/01/01 17:23:56 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/include/access/tupmacs.h,v 1.37 2009/12/31 19:41:35 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -100,7 +100,8 @@
|
||||
*/
|
||||
#define att_align_datum(cur_offset, attalign, attlen, attdatum) \
|
||||
( \
|
||||
((attlen) == -1 && VARATT_IS_SHORT(DatumGetPointer(attdatum))) ? (long) (cur_offset) : \
|
||||
((attlen) == -1 && VARATT_IS_SHORT(DatumGetPointer(attdatum))) ? \
|
||||
(intptr_t) (cur_offset) : \
|
||||
att_align_nominal(cur_offset, attalign) \
|
||||
)
|
||||
|
||||
@@ -115,12 +116,13 @@
|
||||
* aligned 4-byte length word; in either case we need not align.)
|
||||
*
|
||||
* Note: some callers pass a "char *" pointer for cur_offset. This is
|
||||
* a bit of a hack but works OK on all known platforms. It ought to be
|
||||
* cleaned up someday, though.
|
||||
* a bit of a hack but should work all right as long as intptr_t is the
|
||||
* correct width.
|
||||
*/
|
||||
#define att_align_pointer(cur_offset, attalign, attlen, attptr) \
|
||||
( \
|
||||
((attlen) == -1 && VARATT_NOT_PAD_BYTE(attptr)) ? (long) (cur_offset) : \
|
||||
((attlen) == -1 && VARATT_NOT_PAD_BYTE(attptr)) ? \
|
||||
(intptr_t) (cur_offset) : \
|
||||
att_align_nominal(cur_offset, attalign) \
|
||||
)
|
||||
|
||||
@@ -142,7 +144,7 @@
|
||||
#define att_align_nominal(cur_offset, attalign) \
|
||||
( \
|
||||
((attalign) == 'i') ? INTALIGN(cur_offset) : \
|
||||
(((attalign) == 'c') ? (long) (cur_offset) : \
|
||||
(((attalign) == 'c') ? (intptr_t) (cur_offset) : \
|
||||
(((attalign) == 'd') ? DOUBLEALIGN(cur_offset) : \
|
||||
( \
|
||||
AssertMacro((attalign) == 's'), \
|
||||
|
||||
Reference in New Issue
Block a user