You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by al...@apache.org on 2022/10/03 13:01:08 UTC

[arrow-datafusion] branch master updated: Update sqlparser to 0.24.0 (#3675)

This is an automated email from the ASF dual-hosted git repository.

alamb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow-datafusion.git


The following commit(s) were added to refs/heads/master by this push:
     new f706902bc Update sqlparser to 0.24.0  (#3675)
f706902bc is described below

commit f706902bcb5e016900e49fc970c0c8fe96fbd219
Author: Andrew Lamb <an...@nerdnetworks.org>
AuthorDate: Mon Oct 3 09:01:02 2022 -0400

    Update sqlparser to 0.24.0  (#3675)
    
    * Update sqlparser requirement from 0.23 to 0.24
    
    Updates the requirements on [sqlparser](https://github.com/sqlparser-rs/sqlparser-rs) to permit the latest version.
    - [Release notes](https://github.com/sqlparser-rs/sqlparser-rs/releases)
    - [Changelog](https://github.com/sqlparser-rs/sqlparser-rs/blob/main/CHANGELOG.md)
    - [Commits](https://github.com/sqlparser-rs/sqlparser-rs/compare/v0.23.0...v0.24.0)
    
    ---
    updated-dependencies:
    - dependency-name: sqlparser
      dependency-type: direct:production
    ...
    
    Signed-off-by: dependabot[bot] <su...@github.com>
    
    * Update for sqlparser changes
    
    Signed-off-by: dependabot[bot] <su...@github.com>
    Co-authored-by: dependabot[bot] <49...@users.noreply.github.com>
---
 datafusion/common/Cargo.toml  |  2 +-
 datafusion/core/Cargo.toml    |  2 +-
 datafusion/expr/Cargo.toml    |  2 +-
 datafusion/sql/Cargo.toml     |  2 +-
 datafusion/sql/src/planner.rs | 17 ++++++++++-------
 5 files changed, 14 insertions(+), 11 deletions(-)

diff --git a/datafusion/common/Cargo.toml b/datafusion/common/Cargo.toml
index c2c20f43c..48bc61f53 100644
--- a/datafusion/common/Cargo.toml
+++ b/datafusion/common/Cargo.toml
@@ -46,4 +46,4 @@ object_store = { version = "0.5.0", default-features = false, optional = true }
 ordered-float = "3.0"
 parquet = { version = "23.0.0", default-features = false, optional = true }
 pyo3 = { version = "0.17.1", optional = true }
-sqlparser = "0.23"
+sqlparser = "0.24"
diff --git a/datafusion/core/Cargo.toml b/datafusion/core/Cargo.toml
index f5f4350b0..1e338c5d1 100644
--- a/datafusion/core/Cargo.toml
+++ b/datafusion/core/Cargo.toml
@@ -85,7 +85,7 @@ pyo3 = { version = "0.17.1", optional = true }
 rand = "0.8"
 rayon = { version = "1.5", optional = true }
 smallvec = { version = "1.6", features = ["union"] }
-sqlparser = "0.23"
+sqlparser = "0.24"
 tempfile = "3"
 tokio = { version = "1.0", features = ["macros", "rt", "rt-multi-thread", "sync", "fs", "parking_lot"] }
 tokio-stream = "0.1"
diff --git a/datafusion/expr/Cargo.toml b/datafusion/expr/Cargo.toml
index 101035a2e..e0b8e2d52 100644
--- a/datafusion/expr/Cargo.toml
+++ b/datafusion/expr/Cargo.toml
@@ -38,4 +38,4 @@ path = "src/lib.rs"
 ahash = { version = "0.8", default-features = false, features = ["runtime-rng"] }
 arrow = { version = "23.0.0", default-features = false }
 datafusion-common = { path = "../common", version = "12.0.0" }
-sqlparser = "0.23"
+sqlparser = "0.24"
diff --git a/datafusion/sql/Cargo.toml b/datafusion/sql/Cargo.toml
index 769d74a0c..cf057a562 100644
--- a/datafusion/sql/Cargo.toml
+++ b/datafusion/sql/Cargo.toml
@@ -40,4 +40,4 @@ unicode_expressions = []
 arrow = { version = "23.0.0", default-features = false }
 datafusion-common = { path = "../common", version = "12.0.0" }
 datafusion-expr = { path = "../expr", version = "12.0.0" }
-sqlparser = "0.23"
+sqlparser = "0.24"
diff --git a/datafusion/sql/src/planner.rs b/datafusion/sql/src/planner.rs
index b6a6d584a..77e77444c 100644
--- a/datafusion/sql/src/planner.rs
+++ b/datafusion/sql/src/planner.rs
@@ -152,6 +152,7 @@ impl<'a, S: ContextProvider> SqlToRel<'a, S> {
                 verbose,
                 statement,
                 analyze,
+                format: _,
                 describe_alias: _,
             } => self.explain_statement_to_plan(verbose, analyze, *statement),
             Statement::Query(query) => self.query_to_plan(*query, &mut HashMap::new()),
@@ -364,7 +365,7 @@ impl<'a, S: ContextProvider> SqlToRel<'a, S> {
                 }
                 // create logical plan & pass backreferencing CTEs
                 let logical_plan = self.query_to_plan_with_alias(
-                    cte.query,
+                    *cte.query,
                     Some(cte_name.clone()),
                     &mut ctes.clone(),
                     outer_query_schema,
@@ -1720,13 +1721,15 @@ impl<'a, S: ContextProvider> SqlToRel<'a, S> {
                 ],
             }),
 
-            SQLExpr::Value(Value::Interval {
+            SQLExpr::Array(arr) => self.sql_array_literal(arr.elem, schema),
+
+            SQLExpr::Interval {
                 value,
                 leading_field,
                 leading_precision,
                 last_field,
                 fractional_seconds_precision,
-            }) => self.sql_interval_to_literal(
+            } => self.sql_interval_to_expr(
                 *value,
                 leading_field,
                 leading_precision,
@@ -1734,8 +1737,6 @@ impl<'a, S: ContextProvider> SqlToRel<'a, S> {
                 fractional_seconds_precision,
             ),
 
-            SQLExpr::Array(arr) => self.sql_array_literal(arr.elem, schema),
-
             SQLExpr::Identifier(id) => {
                 if id.value.starts_with('@') {
                     // TODO: figure out if ScalarVariables should be insensitive.
@@ -2325,7 +2326,7 @@ impl<'a, S: ContextProvider> SqlToRel<'a, S> {
         Ok((fun, args))
     }
 
-    fn sql_interval_to_literal(
+    fn sql_interval_to_expr(
         &self,
         value: SQLExpr,
         leading_field: Option<DateTimeField>,
@@ -2697,7 +2698,7 @@ pub fn convert_simple_data_type(sql_type: &SQLDataType) -> Result<DataType> {
         SQLDataType::UnsignedBigInt(_) => Ok(DataType::UInt64),
         SQLDataType::Float(_) => Ok(DataType::Float32),
         SQLDataType::Real => Ok(DataType::Float32),
-        SQLDataType::Double => Ok(DataType::Float64),
+        SQLDataType::Double | SQLDataType::DoublePrecision => Ok(DataType::Float64),
         SQLDataType::Char(_)
         | SQLDataType::Varchar(_)
         | SQLDataType::Text
@@ -2726,6 +2727,8 @@ pub fn convert_simple_data_type(sql_type: &SQLDataType) -> Result<DataType> {
         | SQLDataType::Array(_)
         | SQLDataType::Enum(_)
         | SQLDataType::Set(_)
+        | SQLDataType::MediumInt(_)
+        | SQLDataType::UnsignedMediumInt(_)
         | SQLDataType::Clob(_) => Err(DataFusionError::NotImplemented(format!(
             "Unsupported SQL type {:?}",
             sql_type