Restrict REPACK (CONCURRENTLY) on user catalog tables.

REPACK (CONCURRENTLY) is not an MVCC-safe operation; it doesn't
preserve the visibility information, which logical decoding needs
because it reads user catalog tables under a historic snapshot.

Disallow REPACK (CONCURRENTLY) on user catalog tables. Removing this
check requires making it MVCC-safe and logical rewrite mappings.

Backpatch to v19, where REPACK (CONCURRENTLY) was introduced.

Reported-by: Nathan Bossart <[email protected]>
Author: Bharath Rupireddy <[email protected]>
Reviewed-by: Antonin Houska <[email protected]>
Reviewed-by: Masahiko Sawada <[email protected]>
Reviewed-by: Alvaro Herrera <[email protected]>
Discussion: https://postgr.es/m/apBIFWzHYOaG0auN%40nathan
Backpatch-through: 19

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/86f7c82cf1023e3599f40f939727791a7090cd44

Modified Files
--------------
contrib/test_decoding/expected/repack.out |  6 ++++++
contrib/test_decoding/sql/repack.sql      |  5 +++++
doc/src/sgml/ref/repack.sgml              |  8 ++++++++
src/backend/commands/repack.c             | 13 +++++++++++++
4 files changed, 32 insertions(+)

Reply via email to