Part of #339
Parent
#339 — table checks (named multi-column CHECK), auto-migrated
What to build
Ferro can read live ferro-owned ck_* CHECK constraints from the database: name plus definition. Postgres via catalog / pg_get_constraintdef; SQLite for CHECKs that were created inline with the table.
Tests may plant SQL. This ticket does not need the Check Python API and does not add, drop, or rebuild constraints.
Acceptance criteria
Blocked by
#340 — table-check IR, names, and canonical renderer
Part of #339
Parent
#339 — table checks (named multi-column CHECK), auto-migrated
What to build
Ferro can read live ferro-owned
ck_*CHECK constraints from the database: name plus definition. Postgres via catalog /pg_get_constraintdef; SQLite for CHECKs that were created inline with the table.Tests may plant SQL. This ticket does not need the
CheckPython API and does not add, drop, or rebuild constraints.Acceptance criteria
ck_*CHECK with its name and definition.ck_*CHECKs are visible enough to ignore later (user-owned) — they are not treated as ferro-owned.CREATE TABLE, or documents clearly if a given SQLite version cannot name them — either way, not silent.ck_<table>_<suffix>CHECK round-trips name + definition in tests without going through the ORM declaration API.Blocked by
#340 — table-check IR, names, and canonical renderer