Skip to content

Phase 2.8: Wire up stubbed batch/snapshot RPC methods #32

Description

@aesslinger

Part of the Phase 2 set of PostgreSQL-specific features beyond the built-in driver.

Problem

Four RPC methods are already registered in rpc.rs's dispatch table but stubbed with not_implemented() in src/handlers/metadata.rs, returning a -32601 error instead of real data:

  • get_schema_snapshot
  • get_all_columns_batch
  • get_all_foreign_keys_batch
  • get_materialized_view_definition

Found during a README audit (2026-08-18) and surfaced in the README's "Known Limitations" section pointing back here.

Why this differs from the other Phase 2 items

Every other Phase 2 issue (#25#31) is new-feature design work — deciding what the feature should even look like. This is different: the RPC surface and method names already exist in the dispatch table, so this is implementation work against an already-agreed contract, not feature design.

Proposed approach

  • get_materialized_view_definition — low-effort. Same pattern as the existing get_view_definition, reading from pg_matviews.definition.
  • get_all_columns_batch, get_all_foreign_keys_batch, get_schema_snapshot — need a host-side caller check first. There's no existing caller in this repo to infer the expected response shape from, so confirm what tabularis's frontend actually expects (likely a batched/aggregated response across multiple tables, given the naming) before implementing — check tabularis's frontend source for any code that calls these method names, or ask the maintainers if the contract isn't otherwise discoverable.

Acceptance criteria

  • All 4 methods return real data instead of -32601 errors
  • get_materialized_view_definition matches get_view_definition's existing response shape/conventions
  • The two *_batch methods and get_schema_snapshot match whatever shape the frontend caller actually expects (verified against real caller code, not guessed)
  • README's "Known Limitations" section is removed/updated once all 4 land
  • No regressions in existing Phase 1 parity tests

References

  • Priority: Sprint 7 — low effort, already-agreed contract

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