Per docs/ARCHITECTURE.md, first-class test-backed dialects are ANSI, PostgreSQL, MySQL, SQLite, SQL Server, Snowflake; Oracle/DB2/Firebird/Informix/BigQuery are partial; the rest of the 45-entry enum differs only in quoting/boolean traits.
Promoting a dialect to first-class means:
- dialect-aware lexing where needed (TokenizerConfig)
- generator emission rules exercised by exact-string tests in sql/tests/test_dialect_feature_combinations.cpp
- fixpoint corpus entries in sql/tests/test_roundtrip_property.cpp for the dialect's distinctive constructs
- honest limitations documented (throw std::logic_error instead of emitting invalid SQL)
Suggested order: Oracle (FETCH FIRST landed; missing: sequences .NEXTVAL, MERGE specifics, PL/SQL blocks), DB2, BigQuery (backtick quoting landed; missing: STRUCT/ARRAY subscripts), DuckDB.
Per docs/ARCHITECTURE.md, first-class test-backed dialects are ANSI, PostgreSQL, MySQL, SQLite, SQL Server, Snowflake; Oracle/DB2/Firebird/Informix/BigQuery are partial; the rest of the 45-entry enum differs only in quoting/boolean traits.
Promoting a dialect to first-class means:
Suggested order: Oracle (FETCH FIRST landed; missing: sequences .NEXTVAL, MERGE specifics, PL/SQL blocks), DB2, BigQuery (backtick quoting landed; missing: STRUCT/ARRAY subscripts), DuckDB.