Keyboard shortcuts

Press โ† or โ†’ to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

pgevolve roadmap

This document orders every remaining ๐Ÿ”ฎ Future / ๐Ÿ“‹ Planned object kind in objects.md into target releases. The ordering principle is Postgres dependency order ร— user impact: prerequisite objects ship first; within a dep-respecting slot, the objects that unblock the most real applications go earlier.

Version numbers may slip; the order does not. Each row links to a plan stub under ../superpowers/plans/_skeleton/; the stub is promoted to a dated plan when brainstorming begins.

See also ../v1.md โ€” the v1.0 charter defines the gate that triggers the 0.x โ†’ 1.0 cut, the stability commitments, and the quality bar. The roadmap below is the slotted feature schedule; the charter is the meaning of "done".

Shipped

ReleasedObject / sub-featurePlan
v0.3.4PUBLICATION2026-05-26-publications.md
v0.3.5SUBSCRIPTION2026-05-26-subscriptions.md
v0.3.6PG 18 catalog support2026-05-26-postgres-18-support.md
v0.3.7STATISTICS + VIEW ... WITH CHECK OPTION2026-05-27-statistics-and-check-option.md
v0.3.8CREATE COLLATION + RANGE TYPE2026-05-28-collation-and-range-type.md
v0.4.0EVENT TRIGGER2026-06-04-event-trigger.md
v0.4.0TABLESPACE (cluster object)2026-06-05-tablespace.md
v0.4.0TABLE ... USING <access method>2026-06-06-table-access-method.md
v0.4.1AGGREGATE (ordinary: SFUNC + STYPE)2026-06-06-aggregate.md
v0.4.2CAST2026-06-07-cast.md
v0.4.3Per-partition TABLESPACE2026-06-08-table-tablespace.md
v0.4.3TEXT SEARCH family (DICTIONARY + CONFIGURATION)2026-06-08-text-search.md
unreleasedRecursive views (WITH RECURSIVE) โ€” already supported (verified PG 14โ€“18); conformance coverage added, no code change needed2026-06-10-recursive-views-design.md

Active matrix

The 1.0 cut happens when this matrix is empty. See ../v1.md ยง4 for the full v1.0 feature checklist (this matrix is the source of truth; the charter restates it).

TargetObject / sub-featurePlanNotes
blockedPG 18 virtual generated columns2026-06-07-virtual-generated-columns-design.mdDesign complete; blocked upstream. The pg_query crate (latest 6.1.1) wraps libpg_query 17 and rejects VIRTUAL syntax; libpg_query C has an 18.0.0 tag but no Rust release wraps it, and cargo publish forbids git deps. Unblock by bumping pg_query once a PG-18 crates.io release lands, then proceed to writing-plans.
v0.4.2PL-language wiring โ†’ non-SQL FUNCTION bodies_skeleton/pl-language-wiring.mdEnables PL/Python, PL/Perl, etc. Depends on: CREATE EXTENSION (shipped v0.2.x) for the language extension.
v0.5.0FDW family_skeleton/fdw-family.mdFDW, SERVER, USER MAPPING, FOREIGN TABLE, IMPORT FOREIGN SCHEMA; includes secrets handling. Internal slot order within v0.5.0: FDW โ†’ SERVER โ†’ USER MAPPING โ†’ FOREIGN TABLE โ†’ IMPORT FOREIGN SCHEMA.
v0.5.1OPERATOR / OPERATOR CLASS / OPERATOR FAMILY_skeleton/operator-family.mdHeavy admin surface. Depends on: functions + custom types (both shipped v0.2.x).

Future (no version commitment)

Object / featureWhy deferred
Partition pruning at plan timeOptimization, not correctness
SECURITY LABEL integrationUsed primarily by SE-Linux; low demand
Security-barrier / leakproof per-function flag reviewLands alongside finer-grained policy review

Explicitly out of scope

These remain โ›” Not planned (rationale lives in objects.md):

  • RULE โ€” superseded by triggers
  • BASE TYPE โ€” requires C-language functions
  • INHERITS โ€” superseded by declarative partitioning
  • DETACH PARTITION CONCURRENTLY โ€” minimal benefit, high apply-time complexity
  • DATABASE itself, TABLESPACE filesystem layout, cluster-wide settings, backups, data

Ordering rationale

Two principles, applied in order:

  1. Postgres dependency order. CREATE COLLATION precedes TEXT SEARCH. PL-language wiring precedes non-SQL/plpgsql FUNCTION bodies. FDW SERVER / USER MAPPING precede FOREIGN TABLE.
  2. User impact / demand. Within a dep-respecting slot, the objects that unblock the most real applications go earlier. STATISTICS, EVENT TRIGGER, RANGE TYPE, VIEW ... WITH CHECK OPTION, and CREATE COLLATION rank high. OPERATOR FAMILY and CAST rank low.

How to use this document

  • Adding a new object kind: insert a row in the active matrix at the appropriate version, link to a _skeleton/ stub, and update objects.md to flip the status from ๐Ÿ”ฎ to ๐Ÿ“‹.
  • Starting brainstorming on an object: promote the _skeleton/<topic>.md file to <YYYY-MM-DD>-<topic>.md at the top of docs/superpowers/plans/, flip status: skeleton โ†’ status: brainstorming, and update the roadmap row's plan link.
  • Slipping a version: edit only the Target column; the order does not change.