1 /*------------------------------------------------------------------------- 2 * 3 * uuid.h 4 * Header file for the "uuid" ADT. In C, we use the name pg_uuid_t, 5 * to avoid conflicts with any uuid_t type that might be defined by 6 * the system headers. 7 * 8 * Copyright (c) 2007-2017, PostgreSQL Global Development Group 9 * 10 * src/include/utils/uuid.h 11 * 12 *------------------------------------------------------------------------- 13 */ 14 #ifndef UUID_H 15 #define UUID_H 16 17 /* uuid size in bytes */ 18 #define UUID_LEN 16 19 20 typedef struct pg_uuid_t 21 { 22 unsigned char data[UUID_LEN]; 23 } pg_uuid_t; 24 25 /* fmgr interface macros */ 26 #define UUIDPGetDatum(X) PointerGetDatum(X) 27 #define PG_RETURN_UUID_P(X) return UUIDPGetDatum(X) 28 #define DatumGetUUIDP(X) ((pg_uuid_t *) DatumGetPointer(X)) 29 #define PG_GETARG_UUID_P(X) DatumGetUUIDP(PG_GETARG_DATUM(X)) 30 31 #endif /* UUID_H */ 32