from apache/datafusion#2867
while we have nested alias, the outer doesn't work
use sqlparser::dialect::GenericDialect;use sqlparser::parser::Parser;fnmain(){let dialect = GenericDialect{};// or AnsiDialectlet sql = "SELECT __t404.__c394, __t404.__c395, __t404.__c396, __t404.__c397 FROM (( (SELECT test1.c0 AS __c394, test1.c1 AS __c395, test1.c2 AS __c396, test1.c3 AS __c397 FROM (test1)) __t398 INNER JOIN (SELECT test1.c0 AS __c399, test1.c1 AS __c400, test1.c2 AS __c401, test1.c3 AS __c402 FROM (test1)) __t403 ON __t398.__c395 = __t403.__c401) __t404) WHERE __t404.__c395 != __t404.__c396; ";let ast = Parser::parse_sql(&dialect, sql).unwrap();println!("AST: {:?}", ast);}➜ sp git:(master) ✗ cargo run
Compiling sp v0.1.0 (/Users/willy/willy/df-workspace/sp)
Finished dev [unoptimized + debuginfo] target(s) in 0.30s
Running `target/debug/sp`
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: ParserError("Expected ), found: __t404")', src/main.rs:26:48
note: run with `RUST_BACKTRACE=1` environment variable to display a backtracewhile this works
use sqlparser::dialect::GenericDialect;use sqlparser::parser::Parser;fnmain(){let dialect = GenericDialect{};// or AnsiDialect/* let sql = "SELECT a, b, 123, myfunc(b) \ FROM table_1 \ WHERE a > b AND b < 100 \ ORDER BY a DESC, b"; */let sql = "SELECT __c394, __c395, __c396, __c397 FROM (( (SELECT test1.c0 AS __c394, test1.c1 AS __c395, test1.c2 AS __c396, test1.c3 AS __c397 FROM (test1)) __t398 INNER JOIN (SELECT test1.c0 AS __c399, test1.c1 AS __c400, test1.c2 AS __c401, test1.c3 AS __c402 FROM (test1)) __t403 ON __t398.__c395 = __t403.__c401) ) WHERE __c395 != __c396; ";let ast = Parser::parse_sql(&dialect, sql).unwrap();println!("AST: {:?}", ast);}
from apache/datafusion#2867
while we have nested alias, the outer doesn't work
while this works