pgsql: Restrict REPACK (CONCURRENTLY) on user catalog tables. - Mailing list pgsql-committers

From Masahiko Sawada
Subject pgsql: Restrict REPACK (CONCURRENTLY) on user catalog tables.
Date
Msg-id E1x425B-000000042Kp-3cma@gemulon.postgresql.org
Whole thread
List pgsql-committers
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 <nathandbossart@gmail.com>
Author: Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>
Reviewed-by: Antonin Houska <ah@cybertec.at>
Reviewed-by: Masahiko Sawada <sawada.mshk@gmail.com>
Reviewed-by: Alvaro Herrera <alvherre@kurilemu.de>
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(+)


pgsql-committers by date:

Previous
From: Masahiko Sawada
Date:
Subject: pgsql: Fix REPACK (CONCURRENTLY) when the table owner lacks CONNECT.
Next
From: Masahiko Sawada
Date:
Subject: pgsql: Restrict REPACK (CONCURRENTLY) on user catalog tables.