Documentation
¶
Overview ¶
Measurement probe for the catalog-path `like` refusal (specs/CONTRACT-LIKE-CATALOGO.md). Not part of the build; run with
$env:COMPAT_POSTGRES_DSN='postgres://postgres:***@host:5467/postgres?sslmode=disable' go run ./experiments/likecatalog apply # BEFORE the refusal lands go run ./experiments/likecatalog read # AFTER the refusal lands
The two phases exist because the question the contract calls the important one cannot be answered in a single build: it asks what happens to a database whose schema was ALREADY APPLIED by an older version of this layer — one whose `__compat_schema` metadata therefore carries a `like` node. `apply` materializes exactly that database (it only succeeds while `like` still compiles); `read` then asks the post-refusal build whether that database can still be READ (`InspectSchema`, snapshot export) and copied. Breaking the compilation of a new schema is the intended cost; breaking the READ of an existing database would be a far worse regression, so it is measured rather than assumed.
The SQLite file and the PostgreSQL objects are left in place between phases on purpose. The DSN password is never printed.