Skip to content

Commit f14c42c

Browse files
committed
chore: Update sqlparser requirement from 0.38.0 to 0.39.0
1 parent 806a963 commit f14c42c

5 files changed

Lines changed: 37 additions & 8 deletions

File tree

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ arrow-buffer = { version = "48.0.0", default-features = false }
5555
arrow-flight = { version = "48.0.0", features = ["flight-sql-experimental"] }
5656
arrow-schema = { version = "48.0.0", default-features = false }
5757
parquet = { version = "48.0.0", features = ["arrow", "async", "object_store"] }
58-
sqlparser = { version = "0.38.0", features = ["visitor"] }
58+
sqlparser = { version = "0.39.0", features = ["visitor"] }
5959
chrono = { version = "0.4.31", default-features = false }
6060

6161
[profile.release]

datafusion/sql/src/expr/mod.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,9 @@ impl<'a, S: ContextProvider> SqlToRel<'a, S> {
222222
planner_context,
223223
),
224224

225-
SQLExpr::Cast { expr, data_type } => Ok(Expr::Cast(Cast::new(
225+
SQLExpr::Cast {
226+
expr, data_type, ..
227+
} => Ok(Expr::Cast(Cast::new(
226228
Box::new(self.sql_expr_to_logical_expr(
227229
*expr,
228230
schema,
@@ -231,7 +233,9 @@ impl<'a, S: ContextProvider> SqlToRel<'a, S> {
231233
self.convert_data_type(&data_type)?,
232234
))),
233235

234-
SQLExpr::TryCast { expr, data_type } => Ok(Expr::TryCast(TryCast::new(
236+
SQLExpr::TryCast {
237+
expr, data_type, ..
238+
} => Ok(Expr::TryCast(TryCast::new(
235239
Box::new(self.sql_expr_to_logical_expr(
236240
*expr,
237241
schema,
@@ -412,6 +416,7 @@ impl<'a, S: ContextProvider> SqlToRel<'a, S> {
412416
expr,
413417
trim_where,
414418
trim_what,
419+
..
415420
} => self.sql_trim_to_expr(
416421
*expr,
417422
trim_where,

datafusion/sql/src/planner.rs

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ use arrow_schema::*;
2424
use datafusion_common::field_not_found;
2525
use datafusion_common::internal_err;
2626
use datafusion_expr::WindowUDF;
27-
use sqlparser::ast::ExactNumberInfo;
2827
use sqlparser::ast::TimezoneInfo;
28+
use sqlparser::ast::{ArrayElemTypeDef, ExactNumberInfo};
2929
use sqlparser::ast::{ColumnDef as SQLColumnDef, ColumnOption};
3030
use sqlparser::ast::{DataType as SQLDataType, Ident, ObjectName, TableAlias};
3131

@@ -297,14 +297,15 @@ impl<'a, S: ContextProvider> SqlToRel<'a, S> {
297297

298298
pub(crate) fn convert_data_type(&self, sql_type: &SQLDataType) -> Result<DataType> {
299299
match sql_type {
300-
SQLDataType::Array(Some(inner_sql_type)) => {
300+
SQLDataType::Array(ArrayElemTypeDef::AngleBracket(inner_sql_type))
301+
| SQLDataType::Array(ArrayElemTypeDef::SquareBracket(inner_sql_type)) => {
301302
let data_type = self.convert_simple_data_type(inner_sql_type)?;
302303

303304
Ok(DataType::List(Arc::new(Field::new(
304305
"field", data_type, true,
305306
))))
306307
}
307-
SQLDataType::Array(None) => {
308+
SQLDataType::Array(ArrayElemTypeDef::None) => {
308309
not_impl_err!("Arrays with unspecified type is not supported")
309310
}
310311
other => self.convert_simple_data_type(other),
@@ -330,7 +331,7 @@ impl<'a, S: ContextProvider> SqlToRel<'a, S> {
330331
SQLDataType::Char(_)
331332
| SQLDataType::Varchar(_)
332333
| SQLDataType::Text
333-
| SQLDataType::String => Ok(DataType::Utf8),
334+
| SQLDataType::String(_) => Ok(DataType::Utf8),
334335
SQLDataType::Timestamp(None, tz_info) => {
335336
let tz = if matches!(tz_info, TimezoneInfo::Tz)
336337
|| matches!(tz_info, TimezoneInfo::WithTimeZone)
@@ -400,7 +401,12 @@ impl<'a, S: ContextProvider> SqlToRel<'a, S> {
400401
| SQLDataType::Dec(_)
401402
| SQLDataType::BigNumeric(_)
402403
| SQLDataType::BigDecimal(_)
403-
| SQLDataType::Clob(_) => not_impl_err!(
404+
| SQLDataType::Clob(_)
405+
| SQLDataType::Bytes(_)
406+
| SQLDataType::Int64
407+
| SQLDataType::Float64
408+
| SQLDataType::Struct(_)
409+
=> not_impl_err!(
404410
"Unsupported SQL type {sql_type:?}"
405411
),
406412
}

datafusion/sql/src/set_expr.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,9 @@ impl<'a, S: ContextProvider> SqlToRel<'a, S> {
4444
SetQuantifier::AllByName => {
4545
return not_impl_err!("UNION ALL BY NAME not implemented")
4646
}
47+
SetQuantifier::DistinctByName => {
48+
return not_impl_err!("UNION DISTINCT BY NAME not implemented")
49+
}
4750
};
4851

4952
let left_plan = self.set_expr_to_plan(*left, planner_context)?;

datafusion/sql/src/statement.rs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -430,6 +430,7 @@ impl<'a, S: ContextProvider> SqlToRel<'a, S> {
430430
table,
431431
on,
432432
returning,
433+
ignore,
433434
} => {
434435
if or.is_some() {
435436
plan_err!("Inserts with or clauses not supported")?;
@@ -449,6 +450,9 @@ impl<'a, S: ContextProvider> SqlToRel<'a, S> {
449450
if returning.is_some() {
450451
plan_err!("Insert-returning clause not supported")?;
451452
}
453+
if ignore {
454+
plan_err!("Insert-ignore clause not supported")?;
455+
}
452456
let _ = into; // optional keyword doesn't change behavior
453457
self.insert_to_plan(table_name, columns, source, overwrite)
454458
}
@@ -471,6 +475,8 @@ impl<'a, S: ContextProvider> SqlToRel<'a, S> {
471475
selection,
472476
returning,
473477
from,
478+
order_by,
479+
limit,
474480
} => {
475481
if !tables.is_empty() {
476482
plan_err!("DELETE <TABLE> not supported")?;
@@ -483,6 +489,15 @@ impl<'a, S: ContextProvider> SqlToRel<'a, S> {
483489
if returning.is_some() {
484490
plan_err!("Delete-returning clause not yet supported")?;
485491
}
492+
493+
if !order_by.is_empty() {
494+
plan_err!("Delete-order-by clause not yet supported")?;
495+
}
496+
497+
if limit.is_some() {
498+
plan_err!("Delete-limit clause not yet supported")?;
499+
}
500+
486501
let table_name = self.get_delete_target(from)?;
487502
self.delete_to_plan(table_name, selection)
488503
}

0 commit comments

Comments
 (0)