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 2021/12/15 19:46:27 UTC
[arrow-datafusion] branch master updated: Planner code cleanup (#1450)
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 6f4ad77 Planner code cleanup (#1450)
6f4ad77 is described below
commit 6f4ad774d80fc29258bc5eda015fcfc5e75fdf5b
Author: Andrew Lamb <an...@nerdnetworks.org>
AuthorDate: Wed Dec 15 14:46:19 2021 -0500
Planner code cleanup (#1450)
---
datafusion/src/sql/planner.rs | 29 ++++++++++++++++-------------
1 file changed, 16 insertions(+), 13 deletions(-)
diff --git a/datafusion/src/sql/planner.rs b/datafusion/src/sql/planner.rs
index 3558d6c..e668163 100644
--- a/datafusion/src/sql/planner.rs
+++ b/datafusion/src/sql/planner.rs
@@ -1341,22 +1341,25 @@ impl<'a, S: ContextProvider> SqlToRel<'a, S> {
}
SQLExpr::CompoundIdentifier(ids) => {
- let mut var_names = vec![];
- for id in ids {
- var_names.push(id.value.clone());
- }
+ let mut var_names: Vec<_> =
+ ids.iter().map(|id| id.value.clone()).collect();
+
if &var_names[0][0..1] == "@" {
Ok(Expr::ScalarVariable(var_names))
- } else if var_names.len() == 2 {
- // table.column identifier
- let name = var_names.pop().unwrap();
- let relation = Some(var_names.pop().unwrap());
- Ok(Expr::Column(Column { relation, name }))
} else {
- Err(DataFusionError::NotImplemented(format!(
- "Unsupported compound identifier '{:?}'",
- var_names,
- )))
+ match (var_names.pop(), var_names.pop()) {
+ (Some(name), Some(relation)) if var_names.is_empty() => {
+ // table.column identifier
+ Ok(Expr::Column(Column {
+ relation: Some(relation),
+ name,
+ }))
+ }
+ _ => Err(DataFusionError::NotImplemented(format!(
+ "Unsupported compound identifier '{:?}'",
+ var_names,
+ ))),
+ }
}
}