Re: why there is not VACUUM FULL CONCURRENTLY?
Alvaro Herrera <alvherre@alvh.no-ip.org>
From: Alvaro Herrera <alvherre@alvh.no-ip.org>
To: Antonin Houska <ah@cybertec.at>
Cc: Marcos Pegoraro <marcos@f10.com.br>, Michael Banck <mbanck@gmx.net>, Junwang Zhao <zhjwpku@gmail.com>, Kirill Reshke <reshkekirill@gmail.com>, Pavel Stehule <pavel.stehule@gmail.com>,
Michael Paquier <michael@paquier.xyz>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2025-03-20T17:32:02Z
Lists: pgsql-hackers
Attachments
- v09-0001-Add-REPACK-command.patch (text/x-diff)
I rebased this patch series; here's v09. No substantive changes from v08. I made sure the tree still compiles after each commit. I did look at 0002 again (and renamed the members of the new struct by adding a p_ prefix, as well as fixing the references to the old names that were in a few code comments here and there; I don't think these changes are "substantive"), and ended up wondering why do we need that change in the first place. According to the comment where the progress restore function is called, it's because reorderbuffer.c uses a subtransaction internally. But I went to look at reorderbuffer.c and noticed that the subtransaction is only used "when using the SQL function interface, because that creates a transaction already". So maybe we should look into making REPACK use reorderbuffer without having to open a transaction block. I didn't do anything about that, in particular I didn't actually try to run REPACK to see whether the transaction is needed. I'll be looking at that in the next couple of days. -- Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/ "Once again, thank you and all of the developers for your hard work on PostgreSQL. This is by far the most pleasant management experience of any database I've worked on." (Dan Harris) http://archives.postgresql.org/pgsql-performance/2006-04/msg00247.php
Commits
-
Add CONCURRENTLY option to REPACK
- 28d534e2ae0a 19 (unreleased) landed
-
Introduce the REPACK command
- ac58465e0618 19 (unreleased) landed
-
Adjust signature of cluster_rel() and its subroutines
- cc811f92bac5 18.0 landed
-
Simplify signature of RewriteTable
- ebd8fc7e47fd 18.0 cited