Age Owner TLA 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-2023, 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
194 peter 27 GNC 286912 : UUIDPGetDatum(const pg_uuid_t *X)
28 : {
29 286912 : return PointerGetDatum(X);
30 : }
31 :
5915 neilc 32 ECB : #define PG_RETURN_UUID_P(X) return UUIDPGetDatum(X)
33 :
34 : static inline pg_uuid_t *
194 peter 35 GNC 43448032 : DatumGetUUIDP(Datum X)
36 : {
37 43448032 : return (pg_uuid_t *) DatumGetPointer(X);
38 : }
39 :
5915 neilc 40 ECB : #define PG_GETARG_UUID_P(X) DatumGetUUIDP(PG_GETARG_DATUM(X))
41 :
42 : #endif /* UUID_H */
|