mirror of
https://github.com/postgres/postgres.git
synced 2025-07-05 07:21:24 +03:00
This commit adds support for decoding of sequences to the built-in
replication (the infrastructure was added by commit 0da92dc530
).
The syntax and behavior mostly mimics handling of tables, i.e. a
publication may be defined as FOR ALL SEQUENCES (replicating all
sequences in a database), FOR ALL SEQUENCES IN SCHEMA (replicating
all sequences in a particular schema) or individual sequences.
To publish sequence modifications, the publication has to include
'sequence' action. The protocol is extended with a new message,
describing sequence increments.
A new system view pg_publication_sequences lists all the sequences
added to a publication, both directly and indirectly. Various psql
commands (\d and \dRp) are improved to also display publications
including a given sequence, or sequences included in a publication.
Author: Tomas Vondra, Cary Huang
Reviewed-by: Peter Eisentraut, Amit Kapila, Hannu Krosing, Andres
Freund, Petr Jelinek
Discussion: https://postgr.es/m/d045f3c2-6cfb-06d3-5540-e63c320df8bc@enterprisedb.com
Discussion: https://postgr.es/m/1710ed7e13b.cd7177461430746.3372264562543607781@highgo.ca
36 lines
842 B
C
36 lines
842 B
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* pgoutput.h
|
|
* Logical Replication output plugin
|
|
*
|
|
* Copyright (c) 2015-2022, PostgreSQL Global Development Group
|
|
*
|
|
* IDENTIFICATION
|
|
* src/include/replication/pgoutput.h
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
#ifndef PGOUTPUT_H
|
|
#define PGOUTPUT_H
|
|
|
|
#include "nodes/pg_list.h"
|
|
|
|
typedef struct PGOutputData
|
|
{
|
|
MemoryContext context; /* private memory context for transient
|
|
* allocations */
|
|
MemoryContext cachectx; /* private memory context for cache data */
|
|
|
|
/* client-supplied info: */
|
|
uint32 protocol_version;
|
|
List *publication_names;
|
|
List *publications;
|
|
bool binary;
|
|
bool streaming;
|
|
bool messages;
|
|
bool two_phase;
|
|
bool sequences;
|
|
} PGOutputData;
|
|
|
|
#endif /* PGOUTPUT_H */
|