Allow non-btree speculative insertion indexes
[pgsql.git] / src / include / replication / walsender.h
blobc3e8e19133951c1285a436c926d1cc56b2363a48
1 /*-------------------------------------------------------------------------
3 * walsender.h
4 * Exports from replication/walsender.c.
6 * Portions Copyright (c) 2010-2025, PostgreSQL Global Development Group
8 * src/include/replication/walsender.h
10 *-------------------------------------------------------------------------
12 #ifndef _WALSENDER_H
13 #define _WALSENDER_H
15 #include "access/xlogdefs.h"
18 * What to do with a snapshot in create replication slot command.
20 typedef enum
22 CRS_EXPORT_SNAPSHOT,
23 CRS_NOEXPORT_SNAPSHOT,
24 CRS_USE_SNAPSHOT,
25 } CRSSnapshotAction;
27 /* global state */
28 extern PGDLLIMPORT bool am_walsender;
29 extern PGDLLIMPORT bool am_cascading_walsender;
30 extern PGDLLIMPORT bool am_db_walsender;
31 extern PGDLLIMPORT bool wake_wal_senders;
33 /* user-settable parameters */
34 extern PGDLLIMPORT int max_wal_senders;
35 extern PGDLLIMPORT int wal_sender_timeout;
36 extern PGDLLIMPORT bool log_replication_commands;
38 extern void InitWalSender(void);
39 extern bool exec_replication_command(const char *cmd_string);
40 extern void WalSndErrorCleanup(void);
41 extern void PhysicalWakeupLogicalWalSnd(void);
42 extern XLogRecPtr GetStandbyFlushRecPtr(TimeLineID *tli);
43 extern void WalSndSignals(void);
44 extern Size WalSndShmemSize(void);
45 extern void WalSndShmemInit(void);
46 extern void WalSndWakeup(bool physical, bool logical);
47 extern void WalSndInitStopping(void);
48 extern void WalSndWaitStopping(void);
49 extern void HandleWalSndInitStopping(void);
50 extern void WalSndRqstFileReload(void);
53 * Remember that we want to wakeup walsenders later
55 * This is separated from doing the actual wakeup because the writeout is done
56 * while holding contended locks.
58 #define WalSndWakeupRequest() \
59 do { wake_wal_senders = true; } while (0)
62 * wakeup walsenders if there is work to be done
64 static inline void
65 WalSndWakeupProcessRequests(bool physical, bool logical)
67 if (wake_wal_senders)
69 wake_wal_senders = false;
70 if (max_wal_senders > 0)
71 WalSndWakeup(physical, logical);
75 #endif /* _WALSENDER_H */