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(+)
