
2,834 stars · PostgreSQL License, read from LICENSE.txt on the default branch 'development' — /blob/development/LICENSE 404s, so the extension matters. Standard wording, and THE COPYRIGHT CHAIN IS THE INTERESTING PART, stacked and all filled in: 'Copyright (c) 2025-2026 Snowflake, Inc.', 'Copyright (c) 2018-2025 Crunchy Data Solutions, Inc.', 'Copyright (c) 2017 OmniTI, Inc.' The project has passed through three companies and is corporate-stewarded rather than a solo effort. · v5.5.0 of 2026-07-22, the release page reading '22 Jul 14:46' with no year and settled by ungh's releases endpoint at 2026-07-22T14:46:50Z. Siblings v5.4.3 of 2026-03-05 and v5.4.2 of 2026-02-17 — three releases in 2026. · Track this in Scout
A PostgreSQL extension that splits one huge table into many child tables by time or by number, creating future ones in advance and retiring old ones on a schedule.
▶Repo detailsthe review · specs · pros & cons · install
What it does
You install it as a database extension and tell it which table to partition and by what — a date column or a number column. It converts the table into PostgreSQL's native declarative partitioning, which means one parent table and many child tables behind it, with the database choosing the right child automatically. It then keeps the set healthy: creating child tables ahead of time so a new month never arrives unprepared, and dropping or detaching old ones according to a retention setting. Maintenance runs either from an optional background worker inside PostgreSQL, so no external scheduler is needed, or from a job you run yourself. It can also undo the work and put the rows back into one table. What it no longer does is trigger-based partitioning: that approach was dropped from version 5.0.1, so an older setup has to be converted first.
Why it matters
Who it suits. Anyone with a PostgreSQL table that grows by date and that nobody ever deletes from — event logs, measurements, order history, anything append-only. The moment it becomes useful is the moment a DELETE FROM ... WHERE created_at < ... starts taking long enough to be frightening. Skip it if your largest table fits comfortably in memory; partitioning adds planning overhead and is not free.
Verdict. Worth half an hour on a copy of the database first, and the retention setting is the part to think about hardest, because dropping a child table is instant and final. The licence file tells a small story worth knowing: the copyright has passed from OmniTI in 2017 to Crunchy Data from 2018, and to Snowflake from 2025, so this is corporate-stewarded rather than a solo side project. It is a maintenance-grade tool rather than a fast-moving one — 330 commits in fourteen years, three releases in 2026 — which is the right shape for something managing a production table. Two practical notes: the background worker needs a line in postgresql.conf and a server restart, and partitioning many children raises the number of locks a single query needs, so the project suggests raising max_locks_per_transaction from the default of 64 to 128.
- Uses PostgreSQL's own native partitioning rather than inventing a mechanism.
- Pre-creates future child tables, so the first day of a new month is not an incident.
- The optional background worker removes the need for an external scheduler.
- The background worker needs a configuration change and a database restart, and silently does nothing if its database and role settings are missing.
- The schema it is installed into cannot be changed afterwards, so choose it carefully.
- 49 open issues, no published performance figures, and turning on row-level security locks everyone out of its own configuration tables until policies exist.
timescale/timescaledbA whole time-series extension that partitions as one of many features, at 23,676 stars, with code on 12 October 2026; much more capable and much more to adopt.
Track this in Scout- citusdata/citus
Spreads a table across several machines rather than several tables, at 12,787 stars; a different answer to the same size problem.
Track this in Scout - citusdata/pg_cron
Runs scheduled jobs inside PostgreSQL, at 3,881 stars; the usual alternative to this project's background worker.
Track this in Scout
make install
