Commit 0707230
generate_sidecar_schema now takes a SqlDialect and dispatches to new
overlay::sqlite / overlay::postgres modules. The portable table bodies
are shared via assemble(); the only dialect-divergent fragment — the
metadata upsert — is per-module: SQLite INSERT OR IGNORE vs PostgreSQL
INSERT … ON CONFLICT DO NOTHING. The SQLite-only datetime('now') is
replaced by portable CURRENT_TIMESTAMP.
SqlDialect::from_storage maps [sidecar].storage: sqlite→Sqlite,
postgres/postgresql→Postgres, and rejects "json" (previously it
silently emitted SQLite DDL for a JSON store) with a pointer to the
split-out tracking issue #112. main.rs derives the dialect from the
manifest; SidecarConfig docs updated.
6 existing overlay tests retained (now dialect-explicit) + 5 new:
sqlite seed/timestamp, postgres ON CONFLICT, shared bodies, empty
schema, storage→dialect mapping. Suite: 112 lib + 9 integration green.
Closes #45.
Co-authored-by: hyperpolymath <hyperpolymath@users.noreply.github.com>
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
1 parent 3be2bd6 commit 0707230
0 file changed
0 commit comments