Problem
Type mapping is scattered across 6 locations (Python TYPE_REGISTRY, Rust classify_type,
3 encoder files, python_type_to_sql). Adding a new type requires 5+ manual edits
with no compile-time consistency check. DDL generation bypasses sea-query's
dialect-aware rendering via raw strings.
Plan
IrType enum in oxyde-codec as single source of truth
- sea-query
ColumnType for DDL (no hand-rolled dialect branches)
col_types cleaned to IR-only (no SQL type names in runtime path)
- Exhaustive match enforces completeness at compile time
auto_increment becomes dialect-independent, sea-query renders per dialect
Problem
Type mapping is scattered across 6 locations (Python TYPE_REGISTRY, Rust classify_type,
3 encoder files, python_type_to_sql). Adding a new type requires 5+ manual edits
with no compile-time consistency check. DDL generation bypasses sea-query's
dialect-aware rendering via raw strings.
Plan
IrTypeenum in oxyde-codec as single source of truthColumnTypefor DDL (no hand-rolled dialect branches)col_typescleaned to IR-only (no SQL type names in runtime path)auto_incrementbecomes dialect-independent, sea-query renders per dialect