mirror of
https://github.com/postgres/postgres.git
synced 2025-07-12 21:01:52 +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:
@ -10,7 +10,7 @@
|
||||
* Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1995, Regents of the University of California
|
||||
*
|
||||
* $PostgreSQL: pgsql/src/include/postgres.h,v 1.92 2009/01/01 17:23:55 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/include/postgres.h,v 1.93 2009/12/31 19:41:35 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -285,16 +285,10 @@ typedef struct
|
||||
|
||||
/*
|
||||
* Port Notes:
|
||||
* Postgres makes the following assumption about machines:
|
||||
*
|
||||
* sizeof(Datum) == sizeof(long) >= sizeof(void *) >= 4
|
||||
*
|
||||
* Postgres also assumes that
|
||||
* Postgres makes the following assumptions about datatype sizes:
|
||||
*
|
||||
* sizeof(Datum) == sizeof(void *) == 4 or 8
|
||||
* sizeof(char) == 1
|
||||
*
|
||||
* and that
|
||||
*
|
||||
* sizeof(short) == 2
|
||||
*
|
||||
* When a type narrower than Datum is stored in a Datum, we place it in the
|
||||
@ -305,9 +299,9 @@ typedef struct
|
||||
* or short may contain garbage when called as if it returned Datum.
|
||||
*/
|
||||
|
||||
typedef unsigned long Datum; /* XXX sizeof(long) >= sizeof(void *) */
|
||||
typedef uintptr_t Datum;
|
||||
|
||||
#define SIZEOF_DATUM SIZEOF_UNSIGNED_LONG
|
||||
#define SIZEOF_DATUM SIZEOF_VOID_P
|
||||
|
||||
typedef Datum *DatumPtr;
|
||||
|
||||
|
Reference in New Issue
Block a user