Line data Source code
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-2024, 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 : static inline Datum 27 585872 : UUIDPGetDatum(const pg_uuid_t *X) 28 : { 29 585872 : return PointerGetDatum(X); 30 : } 31 : 32 : #define PG_RETURN_UUID_P(X) return UUIDPGetDatum(X) 33 : 34 : static inline pg_uuid_t * 35 86945376 : DatumGetUUIDP(Datum X) 36 : { 37 86945376 : return (pg_uuid_t *) DatumGetPointer(X); 38 : } 39 : 40 : #define PG_GETARG_UUID_P(X) DatumGetUUIDP(PG_GETARG_DATUM(X)) 41 : 42 : #endif /* UUID_H */