postgres=# select * from todo;
TODO
The outcomes we want to achieve — some already in progress, others still ideas. Internal steps, review notes, and blockers belong on the work and project pages. Propose an outcome by editing this file on GitHub and opening a pull request.
Postgres Hacking TODO List ========================== Last updated: 2026-09-02 This is a list of outcomes we want to achieve, not an internal task list. [WIP] means public work exists. [NOT STARTED] means the idea has not yet become active work. Implementation steps, review notes, and blockers belong on the work and project pages. When an outcome is finished, remove it. To propose an outcome, edit this file on GitHub and open a pull request: https://github.com/NikolayS/hacking-postgres/edit/main/TODO Observability ============= * [NOT STARTED] pg_stat_database query counters — per-database QPS alongside TPS (proposed by Nikolay Samokhvalov) * [WIP] Wait event timing and tracing instrumentation — precise, low-overhead wait timing and tracing (Dmitry Fomin) https://hacking.postgres.tv/projects/wait-event-tracing/ https://commitfest.postgresql.org/patch/6984/ * [WIP] pg_stat_log — SQL-queryable cumulative server-message counters by SQLSTATE (Fabrízio Mello) https://hacking.postgres.tv/projects/pg-stat-log/ https://commitfest.postgresql.org/patch/7162/ * [WIP] Add wait events for server logging destination writes — expand coverage of blocking PostgreSQL operations (Seongjun Shin) https://gaps.wait.events/ https://www.postgresql.org/message-id/flat/CACdN0M78U%2BGvpqA7oey-GA7fFSYM636aDp6H9FVvCztv9zXxSA%40mail.gmail.com * [WIP] Improve pg_stat_statements scalability — remove global LWLock bottlenecks (Sami Imseih; related GSoC work by Quan Hoang Truong) https://www.postgresql.org/message-id/flat/CAA5RZ0vZwR_dSK6fo0P2-EnskUVN0NjLHnGnJMFDPC8-kEW3sQ%40mail.gmail.com Recovery and replication ======================== * [WIP] Simplify recovery after dropping a table by logging the restore LSN (Kirk Wolak) https://hacking.postgres.tv/projects/log-object-drops/ https://commitfest.postgresql.org/patch/6272/ * [WIP] recovery_pause_on_logical_slot_conflict — pause instead of invalidating logical slots on archive-fed standbys (Nikolay Samokhvalov) https://hacking.postgres.tv/projects/logical-decoding-archives/ https://github.com/NikolayS/postgres/pull/40 Operations ========== * [WIP] Minor-upgrade operations — bounded pre-shutdown checkpointing and explicit release-note remediation (Nikolay Samokhvalov, Andrey Borodin, Kirk Wolak) https://hacking.postgres.tv/projects/minor-upgrade-operations/ https://www.youtube.com/watch?v=Et6WSCdR3Yw SQL features ============ * [WIP] REFRESH MATERIALIZED VIEW ... WHERE — partial materialized-view refresh (Adam Brusselback) https://hacking.postgres.tv/projects/partial-matview-refresh/ https://commitfest.postgresql.org/patch/6305/ Client/server protocol ====================== * [WIP] command_tag_format — protocol-level command-tag negotiation via _pq_ (Nikolay Samokhvalov) https://github.com/NikolayS/postgres/pull/16 Storage internals ================= * [WIP] Compress big WAL records (Andrey Borodin) https://commitfest.postgresql.org/patch/5621/ * [WIP] B-tree Index Bloat Reduction — safe online page merge (Salma El-Sayed; mentored by Kirk Wolak) https://hacking.postgres.tv/projects/btree-page-merge/ https://www.postgresql.org/message-id/flat/CANBEAPFq3YAOydjUS3xwcUG9L6e3WE5Z4nGPk_Q3RsjSFWTJNA%40mail.gmail.com Client tools ============ * [WIP] Allow excluded tables to remain in the pg_restore data-loading path for directory-format dumps (Kirk Wolak) https://www.postgresql.org/message-id/flat/CACLU5mTrtt2ocj_UhVC2_4tjXRi7oMCxK17WjoeX7khwRvZjxQ%40mail.gmail.com * [NOT STARTED] psql plugin interface (proposed by Kirk Wolak) * [NOT STARTED] Parallel dump and restore of independently restorable chunks of one large table (proposed by Kirk Wolak) * [NOT STARTED] Custom pg_dump queries for filtering and transforming table data (proposed by Kirk Wolak) https://www.postgresql.org/message-id/flat/CACLU5mS07WGPpq6%3Dm8aC5tUMusNpL8FhBPnYem86iSawEgcavw%40mail.gmail.com