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

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


The following commit(s) were added to refs/heads/main by this push:
     new d2ba90109b Minor: Use impl Into<Arc<str>> to construct TableReference 
(#9916)
d2ba90109b is described below

commit d2ba90109bc53ea705626ab21e5125363a19a5c4
Author: Andrew Lamb <[email protected]>
AuthorDate: Tue Apr 2 18:17:47 2024 -0400

    Minor: Use impl Into<Arc<str>> to construct TableReference (#9916)
---
 datafusion/common/src/table_reference.rs        | 13 ++++++++++---
 datafusion/proto/src/logical_plan/from_proto.rs |  6 +++---
 datafusion/sql/src/planner.rs                   |  8 ++++----
 datafusion/sql/src/statement.rs                 |  2 +-
 4 files changed, 18 insertions(+), 11 deletions(-)

diff --git a/datafusion/common/src/table_reference.rs 
b/datafusion/common/src/table_reference.rs
index 1ffcbb8f34..63dbb95177 100644
--- a/datafusion/common/src/table_reference.rs
+++ b/datafusion/common/src/table_reference.rs
@@ -131,7 +131,7 @@ impl TableReference {
     /// As described on [`TableReference`] this does *NO* parsing at
     /// all, so "Foo.Bar" stays as a reference to the table named
     /// "Foo.Bar" (rather than "foo"."bar")
-    pub fn bare(table: &str) -> TableReference {
+    pub fn bare(table: impl Into<Arc<str>>) -> TableReference {
         TableReference::Bare {
             table: table.into(),
         }
@@ -140,7 +140,10 @@ impl TableReference {
     /// Convenience method for creating a [`TableReference::Partial`].
     ///
     /// As described on [`TableReference`] this does *NO* parsing at all.
-    pub fn partial(schema: &str, table: &str) -> TableReference {
+    pub fn partial(
+        schema: impl Into<Arc<str>>,
+        table: impl Into<Arc<str>>,
+    ) -> TableReference {
         TableReference::Partial {
             schema: schema.into(),
             table: table.into(),
@@ -150,7 +153,11 @@ impl TableReference {
     /// Convenience method for creating a [`TableReference::Full`]
     ///
     /// As described on [`TableReference`] this does *NO* parsing at all.
-    pub fn full(catalog: &str, schema: &str, table: &str) -> TableReference {
+    pub fn full(
+        catalog: impl Into<Arc<str>>,
+        schema: impl Into<Arc<str>>,
+        table: impl Into<Arc<str>>,
+    ) -> TableReference {
         TableReference::Full {
             catalog: catalog.into(),
             schema: schema.into(),
diff --git a/datafusion/proto/src/logical_plan/from_proto.rs 
b/datafusion/proto/src/logical_plan/from_proto.rs
index 02f73b296a..3694418412 100644
--- a/datafusion/proto/src/logical_plan/from_proto.rs
+++ b/datafusion/proto/src/logical_plan/from_proto.rs
@@ -223,17 +223,17 @@ impl TryFrom<protobuf::OwnedTableReference> for 
OwnedTableReference {
 
         match table_reference_enum {
             TableReferenceEnum::Bare(protobuf::BareTableReference { table }) 
=> {
-                Ok(OwnedTableReference::bare(&table))
+                Ok(OwnedTableReference::bare(table))
             }
             TableReferenceEnum::Partial(protobuf::PartialTableReference {
                 schema,
                 table,
-            }) => Ok(OwnedTableReference::partial(&schema, &table)),
+            }) => Ok(OwnedTableReference::partial(schema, table)),
             TableReferenceEnum::Full(protobuf::FullTableReference {
                 catalog,
                 schema,
                 table,
-            }) => Ok(OwnedTableReference::full(&catalog, &schema, &table)),
+            }) => Ok(OwnedTableReference::full(catalog, schema, table)),
         }
     }
 }
diff --git a/datafusion/sql/src/planner.rs b/datafusion/sql/src/planner.rs
index 0ee7860573..d2182962b9 100644
--- a/datafusion/sql/src/planner.rs
+++ b/datafusion/sql/src/planner.rs
@@ -307,7 +307,7 @@ impl<'a, S: ContextProvider> SqlToRel<'a, S> {
         let plan = self.apply_expr_alias(plan, alias.columns)?;
 
         LogicalPlanBuilder::from(plan)
-            
.alias(TableReference::bare(&self.normalizer.normalize(alias.name)))?
+            
.alias(TableReference::bare(self.normalizer.normalize(alias.name)))?
             .build()
     }
 
@@ -530,18 +530,18 @@ pub(crate) fn idents_to_table_reference(
     match taker.0.len() {
         1 => {
             let table = taker.take(enable_normalization);
-            Ok(OwnedTableReference::bare(&table))
+            Ok(OwnedTableReference::bare(table))
         }
         2 => {
             let table = taker.take(enable_normalization);
             let schema = taker.take(enable_normalization);
-            Ok(OwnedTableReference::partial(&schema, &table))
+            Ok(OwnedTableReference::partial(schema, table))
         }
         3 => {
             let table = taker.take(enable_normalization);
             let schema = taker.take(enable_normalization);
             let catalog = taker.take(enable_normalization);
-            Ok(OwnedTableReference::full(&catalog, &schema, &table))
+            Ok(OwnedTableReference::full(catalog, schema, table))
         }
         _ => plan_err!("Unsupported compound identifier '{:?}'", taker.0),
     }
diff --git a/datafusion/sql/src/statement.rs b/datafusion/sql/src/statement.rs
index 84dab90678..69d1b71e4f 100644
--- a/datafusion/sql/src/statement.rs
+++ b/datafusion/sql/src/statement.rs
@@ -994,7 +994,7 @@ impl<'a, S: ContextProvider> SqlToRel<'a, S> {
             self.build_order_by(order_exprs, &df_schema, &mut 
planner_context)?;
 
         // External tables do not support schemas at the moment, so the name 
is just a table name
-        let name = OwnedTableReference::bare(&name);
+        let name = OwnedTableReference::bare(name);
         let constraints =
             Constraints::new_from_table_constraints(&all_constraints, 
&df_schema)?;
         Ok(LogicalPlan::Ddl(DdlStatement::CreateExternalTable(

Reply via email to