You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Andres Freund
2bef06d516
Preserve required !catalog tuples while computing initial decoding snapshot.
...
The logical decoding machinery already preserved all the required
catalog tuples, which is sufficient in the course of normal logical
decoding, but did not guarantee that non-catalog tuples were preserved
during computation of the initial snapshot when creating a slot over
the replication protocol.
This could cause a corrupted initial snapshot being exported. The
time window for issues is usually not terribly large, but on a busy
server it's perfectly possible to it hit it. Ongoing decoding is not
affected by this bug.
To avoid increased overhead for the SQL API, only retain additional
tuples when a logical slot is being created over the replication
protocol. To do so this commit changes the signature of
CreateInitDecodingContext(), but it seems unlikely that it's being
used in an extension, so that's probably ok.
In a drive-by fix, fix handling of
ReplicationSlotsComputeRequiredXmin's already_locked argument, which
should only apply to ProcArrayLock, not ReplicationSlotControlLock.
Reported-By: Erik Rijkers
Analyzed-By: Petr Jelinek
Author: Petr Jelinek, heavily editorialized by Andres Freund
Reviewed-By: Andres Freund
Discussion: https://postgr.es/m/9a897b86-46e1-9915-ee4c-da02e4ff6a95@2ndquadrant.com
Backport: 9.4, where logical decoding was introduced.
9 years ago
..
access
Rework handling of subtransactions in 2PC recovery
9 years ago
bootstrap
Update copyright via script for 2017
9 years ago
catalog
Change the on-disk format of SCRAM verifiers to conform to RFC 5803.
9 years ago
commands
Identity columns
9 years ago
common
Avoid using a C++ keyword in header file
9 years ago
datatype
Consistently declare timestamp variables as TimestampTz.
9 years ago
executor
Provide an error cursor for "can't call an SRF here" errors.
9 years ago
fe_utils
Allow psql variable substitution to occur in backtick command strings.
9 years ago
foreign
Allow custom and foreign scans to have shutdown callbacks.
9 years ago
lib
Support hashed aggregation with grouping sets.
9 years ago
libpq
Rename "scram" to "scram-sha-256" in pg_hba.conf and password_encryption.
9 years ago
mb
ICU support
9 years ago
nodes
Fix testing of parallel-safety of SubPlans.
9 years ago
optimizer
Optimize joins when the inner relation can be proven unique.
9 years ago
parser
Identity columns
9 years ago
port
Remove symbol WIN32_ONLY_COMPILER
9 years ago
portability
Update copyright via script for 2017
9 years ago
postmaster
Add an Assert() to max_parallel_workers enforcement.
9 years ago
regex
Document intentional violations of header inclusion policy.
9 years ago
replication
Preserve required !catalog tuples while computing initial decoding snapshot.
9 years ago
rewrite
Remove deprecated COMMENT ON RULE syntax
9 years ago
snowball
Document intentional violations of header inclusion policy.
9 years ago
statistics
Collect and use multi-column dependency stats
9 years ago
storage
Preserve required !catalog tuples while computing initial decoding snapshot.
9 years ago
tcop
Remove dead code and fix comments in fast-path function handling.
9 years ago
tsearch
Full Text Search support for json and jsonb
9 years ago
utils
Add max_sync_workers_per_subscription to postgresql.conf.sample.
9 years ago
.gitignore
Autoconfiscate selection of 64-bit int type for 64-bit large object API.
13 years ago
Makefile
Generate fmgr prototypes automatically
9 years ago
c.h
Recommend wrappers of PG_DETOAST_DATUM_PACKED().
9 years ago
fmgr.h
Avoid passing function pointers across process boundaries.
9 years ago
funcapi.h
Update copyright via script for 2017
9 years ago
getaddrinfo.h
Remove symbol WIN32_ONLY_COMPILER
9 years ago
getopt_long.h
Update copyright via script for 2017
9 years ago
miscadmin.h
Update copyright via script for 2017
9 years ago
pg_config.h.in
Revert "Use pselect(2) not select(2), if available, to wait in postmaster's loop."
9 years ago
pg_config.h.win32
Revert "Use pselect(2) not select(2), if available, to wait in postmaster's loop."
9 years ago
pg_config_ext.h.in
Autoconfiscate selection of 64-bit int type for 64-bit large object API.
13 years ago
pg_config_ext.h.win32
Autoconfiscate selection of 64-bit int type for 64-bit large object API.
13 years ago
pg_config_manual.h
Fix default minimum value for descending sequences
9 years ago
pg_getopt.h
Update copyright via script for 2017
9 years ago
pg_trace.h
Update copyright via script for 2017
9 years ago
pgstat.h
Add ProcArrayGroupUpdate wait event.
9 years ago
pgtar.h
Update copyright via script for 2017
9 years ago
pgtime.h
Fix incorrect comment: pgtime's tm_mon is 1-based, not 0-based.
9 years ago
port.h
Run the postmaster's signal handlers without SA_RESTART.
9 years ago
postgres.h
Recommend wrappers of PG_DETOAST_DATUM_PACKED().
9 years ago
postgres_ext.h
Move atooid() definition to a central place
9 years ago
postgres_fe.h
Update copyright via script for 2017
9 years ago
rusagestub.h
Update copyright via script for 2017
9 years ago
windowapi.h
Update copyright via script for 2017
9 years ago