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]