fix: unnest join constraint with alias parsing for BigQuery dialect (#732)

* fix: unnest join constraint with alias parsing for BigQuery dialect

* chore: fix failing tests
This commit is contained in:
Ziinc 2022-12-14 05:44:45 +08:00 committed by GitHub
parent 650c53dc77
commit d420001c37
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 33 additions and 21 deletions

View file

@ -94,6 +94,34 @@ fn parse_table_identifiers() {
test_table_ident("abc5.GROUP", vec![Ident::new("abc5"), Ident::new("GROUP")]);
}
#[test]
fn parse_join_constraint_unnest_alias() {
assert_eq!(
only(
bigquery()
.verified_only_select("SELECT * FROM t1 JOIN UNNEST(t1.a) AS f ON c1 = c2")
.from
)
.joins,
vec![Join {
relation: TableFactor::UNNEST {
alias: table_alias("f"),
array_expr: Box::new(Expr::CompoundIdentifier(vec![
Ident::new("t1"),
Ident::new("a")
])),
with_offset: false,
with_offset_alias: None
},
join_operator: JoinOperator::Inner(JoinConstraint::On(Expr::BinaryOp {
left: Box::new(Expr::Identifier("c1".into())),
op: BinaryOperator::Eq,
right: Box::new(Expr::Identifier("c2".into())),
})),
}]
);
}
#[test]
fn parse_trailing_comma() {
for (sql, canonical) in [