- Removed --clean-slate: it dropped every schema in the database,
including user data. Nothing used it.
- Pre-check (same rule as the Python client's init_postgres_db()): refuse
if meta or log exists, series is not empty, or the prevent_series_drops
trigger exists, naming the installed version. User schemas and tables
are allowed and never touched; an empty series schema is reused.
- --drop-existing drops every registered series schema plus meta and log,
and refuses if a series schema holds non-series objects.
- All files run in one transaction: a failure leaves nothing behind.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
09_schema_check.sql adds meta.find_schema_problems(), a read-only check
any client (Python, C++, psql) can call:
SELECT * FROM meta.find_schema_problems(); -- zero rows = usable
One row per problem (object, problem): missing schemas, extension,
sequences, tables, columns, wrong column type or NOT NULL, missing
constraints, indexes, views, stored-function bodies that differ from the
DDL (whitespace-insensitive md5 fingerprint), a missing/disabled/
misdirected event trigger, short reference data, no version row. It
mirrors 00-08 and must change in the same commit as they do; the
release test (a fresh install returns zero rows) enforces that.
10_schema_version.sql records VERSION in meta.schema_version. Before,
only the Python client wrote that row, so databases provisioned by
run_setup.py recorded no version at all.
run_setup.py now runs 00-10. It skipped 08_script_log.sql, so its
databases lacked a table the Python client uses; every fresh install is
now identical regardless of provisioner.
sql/migrate/ is removed: databases are re-provisioned, not migrated.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Single source of truth for the timeseries PostgreSQL schema shared by the
Python (TSAPI_SERIESDB_PG_PY) and C++ (TSAPI_POSTGRES_CPP) libraries. SQL
seeded byte-for-byte from TSAPI_SERIESDB_PG_PY/tsapi_pgdb/sql on 2026-09-02.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>