From 41926d476656b0292e31fb1008c86b5c676ef0e9 Mon Sep 17 00:00:00 2001 From: Tim Saucer Date: Fri, 26 Sep 2025 09:27:24 -0400 Subject: [PATCH 1/2] Short circuit SQL parsing if we're just getting a column name --- rust/lance-datafusion/src/planner.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rust/lance-datafusion/src/planner.rs b/rust/lance-datafusion/src/planner.rs index 1935b082b3d..340f9ead71c 100644 --- a/rust/lance-datafusion/src/planner.rs +++ b/rust/lance-datafusion/src/planner.rs @@ -839,6 +839,10 @@ impl Planner { /// Note: the returned expression must be passed through [optimize_filter()] /// before being passed to [create_physical_expr()]. pub fn parse_expr(&self, expr: &str) -> Result { + if let Ok(_) = self.schema.field_with_name(expr) { + return Ok(col(expr)); + } + let ast_expr = parse_sql_expr(expr)?; let expr = self.parse_sql_expr(&ast_expr)?; let schema = Schema::try_from(self.schema.as_ref())?; From 4c4a61375bcecafdef576e57218da4ff3e7cbe47 Mon Sep 17 00:00:00 2001 From: Tim Saucer Date: Fri, 26 Sep 2025 12:35:55 -0400 Subject: [PATCH 2/2] clippy --- rust/lance-datafusion/src/planner.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust/lance-datafusion/src/planner.rs b/rust/lance-datafusion/src/planner.rs index 340f9ead71c..625b8d782b2 100644 --- a/rust/lance-datafusion/src/planner.rs +++ b/rust/lance-datafusion/src/planner.rs @@ -839,7 +839,7 @@ impl Planner { /// Note: the returned expression must be passed through [optimize_filter()] /// before being passed to [create_physical_expr()]. pub fn parse_expr(&self, expr: &str) -> Result { - if let Ok(_) = self.schema.field_with_name(expr) { + if self.schema.field_with_name(expr).is_ok() { return Ok(col(expr)); }