Problem
#238 drops RegisteredModel.schema and the production JSON DDL path, but keeps infer_test_schema_columns and RegisteredModel::new_for_test as a pragmatic #[cfg(test)] bridge: JSON schema fixtures → minimal SchemaColumn → ModelCodecPlan::compile_from_columns.
That adapter is not production code, but it preserves a second JSON→IR inference path in the Rust test suite. Type-resolution behavior is already pinned on the lowering crate and cross-emitter parity tests; the adapter exists only for fixture ergonomics.
Proposed solution
- Replace
RegisteredModel::new_for_test(json!({...})) call sites in Rust unit tests (query.rs, operations.rs, codec_plan.rs, state.rs, etc.) with explicit SchemaColumn fixtures (or a small shared test_fixtures module of named column sets).
- Delete
infer_test_schema_columns, infer_test_logical_type, and the #[cfg(test)] JSON helpers they depend on (resolve_ref, property_json_type_and_format, json_schema_logical_type in schema.rs — only if no other test users remain).
- Optionally introduce
RegisteredModel::new_for_test_from_columns(columns, table_name) as the canonical test constructor.
Acceptance criteria
Context
Documentation impact
none — internal test infrastructure only.
Problem
#238 drops
RegisteredModel.schemaand the production JSON DDL path, but keepsinfer_test_schema_columnsandRegisteredModel::new_for_testas a pragmatic#[cfg(test)]bridge: JSON schema fixtures → minimalSchemaColumn→ModelCodecPlan::compile_from_columns.That adapter is not production code, but it preserves a second JSON→IR inference path in the Rust test suite. Type-resolution behavior is already pinned on the lowering crate and cross-emitter parity tests; the adapter exists only for fixture ergonomics.
Proposed solution
RegisteredModel::new_for_test(json!({...}))call sites in Rust unit tests (query.rs,operations.rs,codec_plan.rs,state.rs, etc.) with explicitSchemaColumnfixtures (or a small sharedtest_fixturesmodule of named column sets).infer_test_schema_columns,infer_test_logical_type, and the#[cfg(test)]JSON helpers they depend on (resolve_ref,property_json_type_and_format,json_schema_logical_typeinschema.rs— only if no other test users remain).RegisteredModel::new_for_test_from_columns(columns, table_name)as the canonical test constructor.Acceptance criteria
infer_test_schema_columns(or JSON→SchemaColumninference) in the Rust codebase.RegisteredModel::new_for_testeither removed or rewritten to takeVec<SchemaColumn>only.cargo test).Context
Documentation impact
none— internal test infrastructure only.