Doris SQL: Support Doris Dialect
Summary
Add Doris SQL dialect, covering the core Doris syntax needed to parse common Doris DDL and load statements.
Motivation
Apache Doris has SQL syntax that differs from the generic SQL dialect, especially around CREATE TABLE clauses, key models, partition/distribution definitions, table properties, and Doris-specific load statements. A dedicated DorisDialect would let users parse Doris SQL without weakening generic parser behavior.
Proposed Scope
- Add
DorisDialect
- Support Doris
CREATE TABLE clauses:
ENGINE = OLAP
DUPLICATE KEY, UNIQUE KEY, AGGREGATE KEY
- table
COMMENT
PARTITION BY RANGE/LIST
AUTO PARTITION
DISTRIBUTED BY HASH/RANDOM
BUCKETS / BUCKETS AUTO
PROPERTIES (...)
- Support Doris column options such as
AUTO_INCREMENT
- Support Doris
LOAD DATA INFILE
- Support Doris
CREATE ROUTINE LOAD
- Preserve generic dialect behavior where Doris-only syntax should remain rejected
Parser / AST Changes
- Add Doris-specific AST structures for key model, partition, distribution, table properties, and load statements
- Extend
CreateTable with optional Doris-specific fields
- Add
Display support for canonical SQL rendering
- Add span support for newly introduced AST nodes where applicable
Tests
Add Doris parser tests covering:
- Positive Doris parsing cases
- Generic/ANSI rejection cases for Doris-only syntax
- AST structure assertions
- Round-trip canonical rendering
- Escaping behavior for table comments containing single quotes
Doris SQL: Support Doris Dialect
Summary
Add Doris SQL dialect, covering the core Doris syntax needed to parse common Doris DDL and load statements.
Motivation
Apache Doris has SQL syntax that differs from the generic SQL dialect, especially around
CREATE TABLEclauses, key models, partition/distribution definitions, table properties, and Doris-specific load statements. A dedicatedDorisDialectwould let users parse Doris SQL without weakening generic parser behavior.Proposed Scope
DorisDialectCREATE TABLEclauses:ENGINE = OLAPDUPLICATE KEY,UNIQUE KEY,AGGREGATE KEYCOMMENTPARTITION BY RANGE/LISTAUTO PARTITIONDISTRIBUTED BY HASH/RANDOMBUCKETS/BUCKETS AUTOPROPERTIES (...)AUTO_INCREMENTLOAD DATA INFILECREATE ROUTINE LOADParser / AST Changes
CreateTablewith optional Doris-specific fieldsDisplaysupport for canonical SQL renderingTests
Add Doris parser tests covering: