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

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


The following commit(s) were added to refs/heads/main by this push:
     new ed65c11065 Enable clone_on_ref_ptr clippy lint on sql (#11380)
ed65c11065 is described below

commit ed65c11065f74d72995619450d5325234aba0b5d
Author: 张林伟 <[email protected]>
AuthorDate: Thu Jul 11 22:58:20 2024 +0800

    Enable clone_on_ref_ptr clippy lint on sql (#11380)
---
 datafusion/sql/examples/sql.rs     | 2 +-
 datafusion/sql/src/cte.rs          | 2 +-
 datafusion/sql/src/expr/mod.rs     | 2 +-
 datafusion/sql/src/lib.rs          | 2 ++
 datafusion/sql/src/statement.rs    | 4 ++--
 datafusion/sql/tests/common/mod.rs | 2 +-
 6 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/datafusion/sql/examples/sql.rs b/datafusion/sql/examples/sql.rs
index aee4cf5a38..1b92a7e116 100644
--- a/datafusion/sql/examples/sql.rs
+++ b/datafusion/sql/examples/sql.rs
@@ -119,7 +119,7 @@ fn create_table_source(fields: Vec<Field>) -> Arc<dyn 
TableSource> {
 impl ContextProvider for MyContextProvider {
     fn get_table_source(&self, name: TableReference) -> Result<Arc<dyn 
TableSource>> {
         match self.tables.get(name.table()) {
-            Some(table) => Ok(table.clone()),
+            Some(table) => Ok(Arc::clone(table)),
             _ => plan_err!("Table not found: {}", name.table()),
         }
     }
diff --git a/datafusion/sql/src/cte.rs b/datafusion/sql/src/cte.rs
index 0035dcda6e..3dfe00e3c5 100644
--- a/datafusion/sql/src/cte.rs
+++ b/datafusion/sql/src/cte.rs
@@ -144,7 +144,7 @@ impl<'a, S: ContextProvider> SqlToRel<'a, S> {
         // as the input to the recursive term
         let work_table_plan = LogicalPlanBuilder::scan(
             cte_name.to_string(),
-            work_table_source.clone(),
+            Arc::clone(&work_table_source),
             None,
         )?
         .build()?;
diff --git a/datafusion/sql/src/expr/mod.rs b/datafusion/sql/src/expr/mod.rs
index 0546a101fc..859842e212 100644
--- a/datafusion/sql/src/expr/mod.rs
+++ b/datafusion/sql/src/expr/mod.rs
@@ -981,7 +981,7 @@ mod tests {
     impl ContextProvider for TestContextProvider {
         fn get_table_source(&self, name: TableReference) -> Result<Arc<dyn 
TableSource>> {
             match self.tables.get(name.table()) {
-                Some(table) => Ok(table.clone()),
+                Some(table) => Ok(Arc::clone(table)),
                 _ => plan_err!("Table not found: {}", name.table()),
             }
         }
diff --git a/datafusion/sql/src/lib.rs b/datafusion/sql/src/lib.rs
index 1040cc61c7..eb5fec7a3c 100644
--- a/datafusion/sql/src/lib.rs
+++ b/datafusion/sql/src/lib.rs
@@ -14,6 +14,8 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
+// Make cheap clones clear: https://github.com/apache/datafusion/issues/11143
+#![deny(clippy::clone_on_ref_ptr)]
 
 //! This module provides:
 //!
diff --git a/datafusion/sql/src/statement.rs b/datafusion/sql/src/statement.rs
index 6cdb2f959c..1acfac79ac 100644
--- a/datafusion/sql/src/statement.rs
+++ b/datafusion/sql/src/statement.rs
@@ -870,12 +870,12 @@ impl<'a, S: ContextProvider> SqlToRel<'a, S> {
                     self.context_provider.get_table_source(table_ref.clone())?;
                 let plan =
                     LogicalPlanBuilder::scan(table_name, table_source, 
None)?.build()?;
-                let input_schema = plan.schema().clone();
+                let input_schema = Arc::clone(plan.schema());
                 (plan, input_schema, Some(table_ref))
             }
             CopyToSource::Query(query) => {
                 let plan = self.query_to_plan(query, &mut 
PlannerContext::new())?;
-                let input_schema = plan.schema().clone();
+                let input_schema = Arc::clone(plan.schema());
                 (plan, input_schema, None)
             }
         };
diff --git a/datafusion/sql/tests/common/mod.rs 
b/datafusion/sql/tests/common/mod.rs
index f5caaefb3e..b8d8bd12d2 100644
--- a/datafusion/sql/tests/common/mod.rs
+++ b/datafusion/sql/tests/common/mod.rs
@@ -258,6 +258,6 @@ impl TableSource for EmptyTable {
     }
 
     fn schema(&self) -> SchemaRef {
-        self.table_schema.clone()
+        Arc::clone(&self.table_schema)
     }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to