Age Owner TLA 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-2025, 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 : /* forward declaration to avoid node.h include */
22 : typedef struct Node Node;
23 :
24 : static inline XLogRecPtr
1075 peter@eisentraut.org 25 CBC 214000 : DatumGetLSN(Datum X)
26 : {
27 214000 : return (XLogRecPtr) DatumGetInt64(X);
28 : }
29 :
30 : static inline Datum
31 265616 : LSNGetDatum(XLogRecPtr X)
32 : {
33 265616 : return Int64GetDatum((int64) X);
34 : }
35 :
36 : #define PG_GETARG_LSN(n) DatumGetLSN(PG_GETARG_DATUM(n))
37 : #define PG_RETURN_LSN(x) return LSNGetDatum(x)
38 :
39 : extern XLogRecPtr pg_lsn_in_safe(const char *str, Node *escontext);
40 :
41 : #endif /* PG_LSN_H */
|