From c62d07bae01665da09ea5b6e2ba791f70a0497f6 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Sat, 25 Sep 2021 14:54:09 -0400 Subject: [PATCH 1/2] Update sqlparser-rs to 0.11 --- ballista/rust/core/Cargo.toml | 2 +- datafusion/Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ballista/rust/core/Cargo.toml b/ballista/rust/core/Cargo.toml index 29a0f092bb9d4..94ee71d6d1c4d 100644 --- a/ballista/rust/core/Cargo.toml +++ b/ballista/rust/core/Cargo.toml @@ -37,7 +37,7 @@ hashbrown = "0.11" log = "0.4" prost = "0.8" serde = {version = "1", features = ["derive"]} -sqlparser = "0.10.0" +sqlparser = "0.11.0" tokio = "1.0" tonic = "0.5" uuid = { version = "0.8", features = ["v4"] } diff --git a/datafusion/Cargo.toml b/datafusion/Cargo.toml index c1998bea13bb3..327fcd33de95e 100644 --- a/datafusion/Cargo.toml +++ b/datafusion/Cargo.toml @@ -52,7 +52,7 @@ ahash = "0.7" hashbrown = { version = "0.11", features = ["raw"] } arrow = { version = "^5.3", features = ["prettyprint"] } parquet = { version = "^5.3", features = ["arrow"] } -sqlparser = "0.10" +sqlparser = "0.11" paste = "^1.0" num_cpus = "1.13.0" chrono = "0.4" From 52a0c1fb1430f19d5fedab709a621c3e5f065136 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Sat, 25 Sep 2021 15:01:28 -0400 Subject: [PATCH 2/2] Update code to handle optional display --- datafusion/src/sql/parser.rs | 3 ++- datafusion/src/sql/planner.rs | 13 +++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/datafusion/src/sql/parser.rs b/datafusion/src/sql/parser.rs index 864801c00f729..c4822c81cad12 100644 --- a/datafusion/src/sql/parser.rs +++ b/datafusion/src/sql/parser.rs @@ -362,9 +362,10 @@ mod tests { fn create_external_table() -> Result<(), ParserError> { // positive case let sql = "CREATE EXTERNAL TABLE t(c1 int) STORED AS CSV LOCATION 'foo.csv'"; + let display = None; let expected = Statement::CreateExternalTable(CreateExternalTable { name: "t".into(), - columns: vec![make_column_def("c1", DataType::Int)], + columns: vec![make_column_def("c1", DataType::Int(display))], file_type: FileType::CSV, has_header: false, location: "foo.csv".into(), diff --git a/datafusion/src/sql/planner.rs b/datafusion/src/sql/planner.rs index f3d1e9eb3aae8..d969a1f484fa4 100644 --- a/datafusion/src/sql/planner.rs +++ b/datafusion/src/sql/planner.rs @@ -102,6 +102,7 @@ impl<'a, S: ContextProvider> SqlToRel<'a, S> { verbose, statement, analyze, + describe_alias: _, } => self.explain_statement_to_plan(*verbose, *analyze, statement), Statement::Query(query) => self.query_to_plan(query), Statement::ShowVariable { variable } => self.show_variable_to_plan(variable), @@ -275,9 +276,9 @@ impl<'a, S: ContextProvider> SqlToRel<'a, S> { /// Maps the SQL type to the corresponding Arrow `DataType` fn make_data_type(&self, sql_type: &SQLDataType) -> Result { match sql_type { - SQLDataType::BigInt => Ok(DataType::Int64), - SQLDataType::Int => Ok(DataType::Int32), - SQLDataType::SmallInt => Ok(DataType::Int16), + SQLDataType::BigInt(_display) => Ok(DataType::Int64), + SQLDataType::Int(_display) => Ok(DataType::Int32), + SQLDataType::SmallInt(_display) => Ok(DataType::Int16), SQLDataType::Char(_) | SQLDataType::Varchar(_) | SQLDataType::Text => { Ok(DataType::Utf8) } @@ -1829,9 +1830,9 @@ fn extract_possible_join_keys( pub fn convert_data_type(sql: &SQLDataType) -> Result { match sql { SQLDataType::Boolean => Ok(DataType::Boolean), - SQLDataType::SmallInt => Ok(DataType::Int16), - SQLDataType::Int => Ok(DataType::Int32), - SQLDataType::BigInt => Ok(DataType::Int64), + SQLDataType::SmallInt(_display) => Ok(DataType::Int16), + SQLDataType::Int(_display) => Ok(DataType::Int32), + SQLDataType::BigInt(_display) => Ok(DataType::Int64), SQLDataType::Float(_) | SQLDataType::Real => Ok(DataType::Float64), SQLDataType::Double => Ok(DataType::Float64), SQLDataType::Char(_) | SQLDataType::Varchar(_) => Ok(DataType::Utf8),