Skip to content

Phase 2: PostgreSQL-specific features beyond the built-in driver (tabularis#16) #9

Description

@aesslinger

Summary

Phase 2 of the postgres-plugin migration (referenced from tabularis PR #577, full plan in docs/planning/03-phase-2-issue-16.md). Where Phase 1 was byte-for-byte parity with the built-in driver, Phase 2 is where the plugin exceeds it — implementing PostgreSQL-specific features the built-in driver never had, tracked upstream as tabularis#16 ("Better PostgreSQL Support": schema handling, specialized data types, sequences, materialized views, etc.).

This issue is the tracking epic; each feature below has its own dedicated issue with the full spec, SQL, and test list. docs/planning/03-phase-2-issue-16.md remains the detailed design doc backing all of them.

Prerequisite: Phase 1 fully complete. 1.0.0-beta.8 is out, 82/82 parity. All Phase 1 sign-off items are done — confirmed via tabularis PR #577's sign-off checklist (security audit, CI hardening, cross-platform build, 24-item manual smoke test, and pnpm test/cargo test regression, all ✅, merged into Tabularis 0.20.0 on 2026-08-18).

Currently in the post-CP-4 stabilization window (per docs/planning/02-phase-1-plugin-build.md): baking on the beta channel against Tabularis 0.20.0+ until no new correctness bugs surface, then shipping 1.0.0 stable — independent of Phase 2 scope. Phase 2 sprints below have not started yet.

Note on scope vs. the original plan: two items from #16's description are already resolved and NOT part of this issue:

  • Non-public schema browsing (tabularis#15) — already implemented (get_schemas, schema-qualified queries throughout src/handlers/metadata.rs).
  • HStore column editing — tabularis#427 merged upstream 2026-08-02. Ported into Phase 2.3: Extension-aware type system #27 (extension-aware types) rather than reimplemented.

Before implementing any feature below, check tabularis for in-flight PRs that already address it (gh pr list --repo TabularisDB/tabularis --search "<feature>") — avoid duplicating community work. Known relevant PRs as of this writing:

PR Feature Status
#402 Multi-database connections Open
#222 Composite PK end-to-end Open (draft)

Features

Approach

Same TDD discipline as Phase 1: write the test (RED) → implement (GREEN) → verify no regressions. Phase 2 features are plugin-only — they don't exist in the built-in driver, so there's no parity suite to satisfy; each feature gets its own dedicated tests instead.

Checkpoint: CP-5 (Phase 2 complete — feature-completeness milestone)

Versioning note: 1.0.0 stable ships at the end of Phase 1 stabilization (see above), not at Phase 2 completion. CP-5 below is a feature-completeness milestone on top of an already-stable 1.x release — each Phase 2 feature versions as a normal feat: minor bump per the README's PR-title → semver mapping, not a second "promote to stable" event.

This is a milestone worth communicating — the plugin becomes strictly better than the built-in driver, not just at parity with it.

At minimum, #25 + #26 + #27 must land before calling Phase 2 core done.

Ship points

Each feature ships independently as a stable update as it lands, closing its own issue — no need to wait for the full Phase 2 set. CP-5 is reached once the minimum bar (#25 + #26 + #27) is met.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions