ADR 0001: The goal is full compatibility with PostgreSQL 18

Status: Accepted Date: 2026-10-24 Scope: orbit-rs Deciders: Ravindra Boddipalli

Context

Until 2026-10-24 the project said two different things. specifications/protocols/POSTGRESQL_18_CONFORMANCE_PLAN.md stated “Full PostgreSQL 18 parity is not a goal” and listed C-ABI extensions, foreign data wrappers, logical-replication wire compatibility, pg_upgrade and EXPLAIN output as out of scope, while the README, features list and whitepapers said “Complete”, “94% PostgreSQL 18 compatible” and “100% wire compatible”. Neither was backed by a measurement.

The first work toward the goal was scoped to what Symphony needs (the install plan and eight business flows). It did not exercise the catalog model, the full type system, concurrency, the extended protocol or tooling. A schema gap went unnoticed for that reason: CREATE SCHEMA is accepted and ignored (see ADR 0003).

Decision

The goal is full compatibility with PostgreSQL 18, with no permanent exclusions. The items the earlier plan excluded (C-ABI extensions, foreign data wrappers, logical-replication wire compatibility, pg_upgrade, EXPLAIN output) are in scope and sequenced last, after the catalog, type system, SQL surface, concurrency and protocol work that everything else depends on. Each gets its own area in the conformance corpus before it is claimed.

Consequences

  • Features are prioritised by what blocks real clients and Symphony first, but nothing is declared out of scope.
  • Every public statement about PostgreSQL support follows ADR 0002.
  • The plan’s earlier Position section, and the unmeasured claims in README, docs/features.md, specifications/ and the whitepapers, were replaced.
  • The goal is a direction, not a claim of achievement. Wording must never imply it is reached.

Canonical wording

Orbit-RS’s goal is full compatibility with PostgreSQL 18, measured against the PostgreSQL 18 conformance corpus.

Verification

scripts/check_adr.py (run by make adr-check) fails on the retired wording. Progress is the conformance pass rate in POSTGRESQL_18_CONFORMANCE_PLAN.md.