| 1 | /*------------------------------------------------------------------------- |
| 2 | * |
| 3 | * pg_lsn.h |
| 4 | * Declarations for operations on log sequence numbers (LSNs) of |
| 5 | * PostgreSQL. |
| 6 | * |
| 7 | * |
| 8 | * Portions Copyright (c) 1996-2019, PostgreSQL Global Development Group |
| 9 | * Portions Copyright (c) 1994, Regents of the University of California |
| 10 | * |
| 11 | * src/include/utils/pg_lsn.h |
| 12 | * |
| 13 | *------------------------------------------------------------------------- |
| 14 | */ |
| 15 | #ifndef PG_LSN_H |
| 16 | #define PG_LSN_H |
| 17 | |
| 18 | #include "fmgr.h" |
| 19 | #include "access/xlogdefs.h" |
| 20 | |
| 21 | #define DatumGetLSN(X) ((XLogRecPtr) DatumGetInt64(X)) |
| 22 | #define LSNGetDatum(X) (Int64GetDatum((int64) (X))) |
| 23 | |
| 24 | #define PG_GETARG_LSN(n) DatumGetLSN(PG_GETARG_DATUM(n)) |
| 25 | #define PG_RETURN_LSN(x) return LSNGetDatum(x) |
| 26 | |
| 27 | extern XLogRecPtr pg_lsn_in_internal(const char *str, bool *have_error); |
| 28 | |
| 29 | #endif /* PG_LSN_H */ |
| 30 | |