mirror of
https://github.com/postgres/postgres.git
synced 2025-07-26 01:22:12 +03:00
Logical replication
- Add PUBLICATION catalogs and DDL - Add SUBSCRIPTION catalog and DDL - Define logical replication protocol and output plugin - Add logical replication workers From: Petr Jelinek <petr@2ndquadrant.com> Reviewed-by: Steve Singer <steve@ssinger.info> Reviewed-by: Andres Freund <andres@anarazel.de> Reviewed-by: Erik Rijkers <er@xs4all.nl> Reviewed-by: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
This commit is contained in:
62
src/include/replication/worker_internal.h
Normal file
62
src/include/replication/worker_internal.h
Normal file
@ -0,0 +1,62 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* worker_internal.h
|
||||
* Internal headers shared by logical replication workers.
|
||||
*
|
||||
* Portions Copyright (c) 2010-2016, PostgreSQL Global Development Group
|
||||
*
|
||||
* src/include/replication/worker_internal.h
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef WORKER_INTERNAL_H
|
||||
#define WORKER_INTERNAL_H
|
||||
|
||||
#include "catalog/pg_subscription.h"
|
||||
#include "storage/lock.h"
|
||||
|
||||
typedef struct LogicalRepWorker
|
||||
{
|
||||
/* Pointer to proc array. NULL if not running. */
|
||||
PGPROC *proc;
|
||||
|
||||
/* Database id to connect to. */
|
||||
Oid dbid;
|
||||
|
||||
/* User to use for connection (will be same as owner of subscription). */
|
||||
Oid userid;
|
||||
|
||||
/* Subscription id for the worker. */
|
||||
Oid subid;
|
||||
|
||||
/* Used for initial table synchronization. */
|
||||
Oid relid;
|
||||
|
||||
/* Stats. */
|
||||
XLogRecPtr last_lsn;
|
||||
TimestampTz last_send_time;
|
||||
TimestampTz last_recv_time;
|
||||
XLogRecPtr reply_lsn;
|
||||
TimestampTz reply_time;
|
||||
} LogicalRepWorker;
|
||||
|
||||
/* libpqreceiver connection */
|
||||
extern struct WalReceiverConn *wrconn;
|
||||
|
||||
/* Worker and subscription objects. */
|
||||
extern Subscription *MySubscription;
|
||||
extern LogicalRepWorker *MyLogicalRepWorker;
|
||||
|
||||
extern bool in_remote_transaction;
|
||||
extern bool got_SIGTERM;
|
||||
|
||||
extern void logicalrep_worker_attach(int slot);
|
||||
extern LogicalRepWorker *logicalrep_worker_find(Oid subid);
|
||||
extern int logicalrep_worker_count(Oid subid);
|
||||
extern void logicalrep_worker_launch(Oid dbid, Oid subid, const char *subname, Oid userid);
|
||||
extern void logicalrep_worker_stop(Oid subid);
|
||||
extern void logicalrep_worker_wakeup(Oid subid);
|
||||
|
||||
extern void logicalrep_worker_sigterm(SIGNAL_ARGS);
|
||||
|
||||
#endif /* WORKER_INTERNAL_H */
|
Reference in New Issue
Block a user