Restrict REPACK (CONCURRENTLY) to the heap access method. REPACK (CONCURRENTLY) didn't check the table AM of the table being repacked, so if the table AM doesn't support logical decoding, the concurrent changes are never decoded and are silently lost from the rewritten table.
Fix by erroring out for tables that use a non-heap access method. Reported-by: Nathan Bossart <[email protected]> Author: Bharath Rupireddy <[email protected]> Reviewed-by: Nathan Bossart <[email protected]> Reviewed-by: Masahiko Sawada <[email protected]> Discussion: https://postgr.es/m/apBkixO4xAGFoiT3@nathan Backpatch-through: 19 Branch ------ REL_19_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/fe7b60723420c5279824c35efc45630889239a70 Modified Files -------------- doc/src/sgml/ref/repack.sgml | 6 ++++++ src/backend/commands/repack.c | 14 ++++++++++++++ 2 files changed, 20 insertions(+)
