/*------------------------------------------------------------------------- * * uuid.h * Header file for the "uuid" ADT. In C, we use the name pg_uuid_t, * to avoid conflicts with any uuid_t type that might be defined by * the system headers. * * Copyright (c) 2007-2023, PostgreSQL Global Development Group * * src/include/utils/uuid.h * *------------------------------------------------------------------------- */ #ifndef UUID_H #define UUID_H /* uuid size in bytes */ #define UUID_LEN 16 typedef struct pg_uuid_t { unsigned char data[UUID_LEN]; } pg_uuid_t; /* fmgr interface macros */ static inline Datum UUIDPGetDatum(const pg_uuid_t *X) { return PointerGetDatum(X); } #define PG_RETURN_UUID_P(X) return UUIDPGetDatum(X) static inline pg_uuid_t * DatumGetUUIDP(Datum X) { return (pg_uuid_t *) DatumGetPointer(X); } #define PG_GETARG_UUID_P(X) DatumGetUUIDP(PG_GETARG_DATUM(X)) #endif /* UUID_H */