top of page


PostgreSQL 19's REPACK (CONCURRENTLY): Online Table Rewrites, and Where the Limits Are
Every PostgreSQL team eventually meets the same problem: a table that carries far more disk space than its live rows need. Plain VACUUM does not fix it, VACUUM FULL fixes it but locks the table, and the usual way out has been third-party tooling. PostgreSQL 19 adds a built-in answer: a new REPACK command with a CONCURRENTLY option. This post walks through the problem on a reproducible example, then through what the official documentation says REPACK does, and, just as importa
bottom of page