Skip to content

Commit f52d210

Browse files
committed
Update for new sqlparser API
1 parent 28804a9 commit f52d210

File tree

12 files changed

+64
-14
lines changed

12 files changed

+64
-14
lines changed

datafusion/common/src/utils/mod.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -728,7 +728,7 @@ pub fn combine_limit(
728728
mod tests {
729729
use crate::ScalarValue::Null;
730730
use arrow::array::Float64Array;
731-
731+
use sqlparser::tokenizer::Span;
732732
use super::*;
733733

734734
#[test]
@@ -957,6 +957,7 @@ mod tests {
957957
let expected_parsed = vec![Ident {
958958
value: identifier.to_string(),
959959
quote_style,
960+
span: Span::empty(),
960961
}];
961962

962963
assert_eq!(

datafusion/expr/src/expr.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,8 @@ use sqlparser::ast::{
222222
/// // to 42 = 5 AND b = 6
223223
/// assert_eq!(rewritten.data, lit(42).eq(lit(5)).and(col("b").eq(lit(6))));
224224
#[derive(Clone, PartialEq, Eq, PartialOrd, Hash, Debug)]
225+
// TODO make the enum smaller with more boxing (looks like Wildcard is now bigger)
226+
#[allow(clippy::large_enum_variant)]
225227
pub enum Expr {
226228
/// An expression with a specific name.
227229
Alias(Alias),

datafusion/sql/src/expr/function.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,11 @@ impl FunctionArgs {
169169
"Calling {name}: SEPARATOR not supported in function arguments: {sep}"
170170
)
171171
}
172+
FunctionArgumentClause::JsonNullClause(jn) => {
173+
return not_impl_err!(
174+
"Calling {name}: JSON NULL clause not supported in function arguments: {jn}"
175+
)
176+
}
172177
}
173178
}
174179

datafusion/sql/src/expr/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -565,11 +565,11 @@ impl<'a, S: ContextProvider> SqlToRel<'a, S> {
565565
}
566566
not_impl_err!("AnyOp not supported by ExprPlanner: {binary_expr:?}")
567567
}
568-
SQLExpr::Wildcard => Ok(Expr::Wildcard {
568+
SQLExpr::Wildcard(_token) => Ok(Expr::Wildcard {
569569
qualifier: None,
570570
options: WildcardOptions::default(),
571571
}),
572-
SQLExpr::QualifiedWildcard(object_name) => Ok(Expr::Wildcard {
572+
SQLExpr::QualifiedWildcard(object_name, _token) => Ok(Expr::Wildcard {
573573
qualifier: Some(self.object_name_to_table_reference(object_name)?),
574574
options: WildcardOptions::default(),
575575
}),

datafusion/sql/src/parser.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -875,6 +875,7 @@ mod tests {
875875
use super::*;
876876
use sqlparser::ast::Expr::Identifier;
877877
use sqlparser::ast::{BinaryOperator, DataType, Expr, Ident};
878+
use sqlparser::tokenizer::Span;
878879

879880
fn expect_parse_ok(sql: &str, expected: Statement) -> Result<(), ParserError> {
880881
let statements = DFParser::parse_sql(sql)?;
@@ -910,6 +911,7 @@ mod tests {
910911
name: Ident {
911912
value: name.into(),
912913
quote_style: None,
914+
span: Span::empty(),
913915
},
914916
data_type,
915917
collation: None,
@@ -1218,6 +1220,7 @@ mod tests {
12181220
expr: Identifier(Ident {
12191221
value: "c1".to_owned(),
12201222
quote_style: None,
1223+
span: Span::empty(),
12211224
}),
12221225
asc,
12231226
nulls_first,
@@ -1249,6 +1252,7 @@ mod tests {
12491252
expr: Identifier(Ident {
12501253
value: "c1".to_owned(),
12511254
quote_style: None,
1255+
span: Span::empty(),
12521256
}),
12531257
asc: Some(true),
12541258
nulls_first: None,
@@ -1258,6 +1262,7 @@ mod tests {
12581262
expr: Identifier(Ident {
12591263
value: "c2".to_owned(),
12601264
quote_style: None,
1265+
span: Span::empty(),
12611266
}),
12621267
asc: Some(false),
12631268
nulls_first: Some(true),
@@ -1289,11 +1294,13 @@ mod tests {
12891294
left: Box::new(Identifier(Ident {
12901295
value: "c1".to_owned(),
12911296
quote_style: None,
1297+
span: Span::empty(),
12921298
})),
12931299
op: BinaryOperator::Minus,
12941300
right: Box::new(Identifier(Ident {
12951301
value: "c2".to_owned(),
12961302
quote_style: None,
1303+
span: Span::empty(),
12971304
})),
12981305
},
12991306
asc: Some(true),
@@ -1334,11 +1341,13 @@ mod tests {
13341341
left: Box::new(Identifier(Ident {
13351342
value: "c1".to_owned(),
13361343
quote_style: None,
1344+
span: Span::empty(),
13371345
})),
13381346
op: BinaryOperator::Minus,
13391347
right: Box::new(Identifier(Ident {
13401348
value: "c2".to_owned(),
13411349
quote_style: None,
1350+
span: Span::empty(),
13421351
})),
13431352
},
13441353
asc: Some(true),

datafusion/sql/src/planner.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,8 @@ impl<'a, S: ContextProvider> SqlToRel<'a, S> {
339339
plan: LogicalPlan,
340340
alias: TableAlias,
341341
) -> Result<LogicalPlan> {
342-
let plan = self.apply_expr_alias(plan, alias.columns)?;
342+
let idents = alias.columns.into_iter().map(|c| c.name).collect();
343+
let plan = self.apply_expr_alias(plan, idents)?;
343344

344345
LogicalPlanBuilder::from(plan)
345346
.alias(TableReference::bare(

datafusion/sql/src/select.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -654,6 +654,7 @@ impl<'a, S: ContextProvider> SqlToRel<'a, S> {
654654
opt_rename,
655655
opt_replace: _opt_replace,
656656
opt_ilike: _opt_ilike,
657+
wildcard_token: _wildcard_token,
657658
} = options;
658659

659660
if opt_rename.is_some() {

datafusion/sql/src/statement.rs

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -685,19 +685,31 @@ impl<'a, S: ContextProvider> SqlToRel<'a, S> {
685685
Statement::ShowTables {
686686
extended,
687687
full,
688-
db_name,
689-
filter,
688+
terse: _, // TODO throw errors for unsupported options
689+
history: _,
690+
external: _,
691+
show_options: _,
692+
//db_name,
693+
//filter,
690694
// SHOW TABLES IN/FROM are equivalent, this field specifies which the user
691695
// specified, but it doesn't affect the plan so ignore the field
692-
clause: _,
693-
} => self.show_tables_to_plan(extended, full, db_name, filter),
696+
//clause: _,
697+
} =>
698+
{
699+
todo!("Update show tables/ fix for new syntax");
700+
// self.show_tables_to_plan(extended, full, db_name, filter)
701+
},
694702

695703
Statement::ShowColumns {
696704
extended,
697705
full,
698-
table_name,
699-
filter,
700-
} => self.show_columns_to_plan(extended, full, table_name, filter),
706+
//table_name,
707+
//filter,
708+
show_options: _,
709+
} => {
710+
todo!("Update show columns / fix for new syntax");
711+
//self.show_columns_to_plan(extended, full, table_name, filter)
712+
},
701713

702714
Statement::Insert(Insert {
703715
or,
@@ -766,10 +778,14 @@ impl<'a, S: ContextProvider> SqlToRel<'a, S> {
766778
from,
767779
selection,
768780
returning,
781+
or,
769782
} => {
770783
if returning.is_some() {
771784
plan_err!("Update-returning clause not yet supported")?;
772785
}
786+
if or.is_some() {
787+
plan_err!("ON conflict not supported")?;
788+
}
773789
self.update_to_plan(table, assignments, from, selection)
774790
}
775791

datafusion/sql/src/unparser/ast.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
use core::fmt;
2525

2626
use sqlparser::ast;
27+
use sqlparser::ast::helpers::attached_token::AttachedToken;
2728

2829
#[derive(Clone)]
2930
pub(super) struct QueryBuilder {
@@ -268,6 +269,7 @@ impl SelectBuilder {
268269
connect_by: None,
269270
window_before_qualify: false,
270271
prewhere: None,
272+
select_token: AttachedToken::empty(),
271273
})
272274
}
273275
fn create_empty() -> Self {
@@ -458,6 +460,7 @@ impl TableRelationBuilder {
458460
version: self.version.clone(),
459461
partitions: self.partitions.clone(),
460462
with_ordinality: false,
463+
json_path: None,
461464
})
462465
}
463466
fn create_empty() -> Self {

datafusion/sql/src/unparser/dialect.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,7 @@ impl PostgreSqlDialect {
272272
name: ObjectName(vec![Ident {
273273
value: func_name.to_string(),
274274
quote_style: None,
275+
span: Span::empty(),
275276
}]),
276277
args: ast::FunctionArguments::List(ast::FunctionArgumentList {
277278
duplicate_treatment: None,

0 commit comments

Comments
 (0)