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-2019, 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 | |