Reverse fidelity

Db2 and Teradata DDL imports preserve supported scalar types, keys, indexes, identity columns, and table options through a generate/import round trip.

DDL and live catalog imports preserve generated columns, complete identity options, index kinds and options, constraint comments, table and column options, exclusions, row policies, collations, and extensions where the dialect exposes them. Importing generated DDL again produces the same physical model after origins are removed.

Use bluep import ddl ... --report <path> or bluep import db ... --report <path> to write a deterministic JSON report. The document has version 1, sorted notes, and sorted unrepresented objects with dialect, kind, name, and detail. Reports are written atomically after a successful import. Notes are always printed as note: ...; each unrepresented object is always printed as unrepresented <dialect> <kind> <name>: <detail>, even without --report.

An unrepresented object does not fail the import. It means the input was recognized and consumed but has no typed model representation. Syntax errors in supported constructs still fail with their SQL source position. The old database-import wrappers retain compatibility: model-only import returns the model, while import with notes appends the same unrepresented lines so callers cannot silently discard fidelity information.