Line data Source code
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-2024, 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 "access/xlogdefs.h" 19 : #include "fmgr.h" 20 : 21 : static inline XLogRecPtr 22 104522 : DatumGetLSN(Datum X) 23 : { 24 104522 : return (XLogRecPtr) DatumGetInt64(X); 25 : } 26 : 27 : static inline Datum 28 530022 : LSNGetDatum(XLogRecPtr X) 29 : { 30 530022 : return Int64GetDatum((int64) X); 31 : } 32 : 33 : #define PG_GETARG_LSN(n) DatumGetLSN(PG_GETARG_DATUM(n)) 34 : #define PG_RETURN_LSN(x) return LSNGetDatum(x) 35 : 36 : extern XLogRecPtr pg_lsn_in_internal(const char *str, bool *have_error); 37 : 38 : #endif /* PG_LSN_H */