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/datafusion.git


The following commit(s) were added to refs/heads/main by this push:
     new 5f02c8a065 Return `&Arc` reference to inner trait object (#11103)
5f02c8a065 is described below

commit 5f02c8a0658d9ed012ca4ca91f0417a967fe094a
Author: Heran Lin <[email protected]>
AuthorDate: Wed Jun 26 07:17:50 2024 +0800

    Return `&Arc` reference to inner trait object (#11103)
    
    * Return `&Arc` reference to inner trait object
    
    * Format code
---
 datafusion-cli/src/catalog.rs                  | 9 +++++----
 datafusion-cli/src/main.rs                     | 2 +-
 datafusion/core/src/execution/context/mod.rs   | 2 +-
 datafusion/core/src/execution/session_state.rs | 8 ++++----
 datafusion/expr/src/udaf.rs                    | 4 ++--
 datafusion/expr/src/udf.rs                     | 4 ++--
 datafusion/expr/src/udwf.rs                    | 4 ++--
 7 files changed, 17 insertions(+), 16 deletions(-)

diff --git a/datafusion-cli/src/catalog.rs b/datafusion-cli/src/catalog.rs
index faa657da65..c11eb3280c 100644
--- a/datafusion-cli/src/catalog.rs
+++ b/datafusion-cli/src/catalog.rs
@@ -236,13 +236,14 @@ mod tests {
     fn setup_context() -> (SessionContext, Arc<dyn SchemaProvider>) {
         let mut ctx = SessionContext::new();
         ctx.register_catalog_list(Arc::new(DynamicFileCatalog::new(
-            ctx.state().catalog_list(),
+            ctx.state().catalog_list().clone(),
             ctx.state_weak_ref(),
         )));
 
-        let provider =
-            &DynamicFileCatalog::new(ctx.state().catalog_list(), 
ctx.state_weak_ref())
-                as &dyn CatalogProviderList;
+        let provider = &DynamicFileCatalog::new(
+            ctx.state().catalog_list().clone(),
+            ctx.state_weak_ref(),
+        ) as &dyn CatalogProviderList;
         let catalog = provider
             .catalog(provider.catalog_names().first().unwrap())
             .unwrap();
diff --git a/datafusion-cli/src/main.rs b/datafusion-cli/src/main.rs
index f469fda4f9..6266ae6f56 100644
--- a/datafusion-cli/src/main.rs
+++ b/datafusion-cli/src/main.rs
@@ -180,7 +180,7 @@ async fn main_inner() -> Result<()> {
     ctx.refresh_catalogs().await?;
     // install dynamic catalog provider that knows how to open files
     ctx.register_catalog_list(Arc::new(DynamicFileCatalog::new(
-        ctx.state().catalog_list(),
+        ctx.state().catalog_list().clone(),
         ctx.state_weak_ref(),
     )));
     // register `parquet_metadata` table function to get metadata from parquet 
files
diff --git a/datafusion/core/src/execution/context/mod.rs 
b/datafusion/core/src/execution/context/mod.rs
index 52fc31de78..ac85dd95af 100644
--- a/datafusion/core/src/execution/context/mod.rs
+++ b/datafusion/core/src/execution/context/mod.rs
@@ -1856,7 +1856,7 @@ mod tests {
 
         let catalog_list_weak = {
             let state = ctx.state.read();
-            Arc::downgrade(&state.catalog_list())
+            Arc::downgrade(state.catalog_list())
         };
 
         drop(ctx);
diff --git a/datafusion/core/src/execution/session_state.rs 
b/datafusion/core/src/execution/session_state.rs
index 60f67a5b23..16d8508597 100644
--- a/datafusion/core/src/execution/session_state.rs
+++ b/datafusion/core/src/execution/session_state.rs
@@ -807,8 +807,8 @@ impl SessionState {
     }
 
     /// Return catalog list
-    pub fn catalog_list(&self) -> Arc<dyn CatalogProviderList> {
-        self.catalog_list.clone()
+    pub fn catalog_list(&self) -> &Arc<dyn CatalogProviderList> {
+        &self.catalog_list
     }
 
     /// set the catalog list
@@ -840,8 +840,8 @@ impl SessionState {
     }
 
     /// Return [SerializerRegistry] for extensions
-    pub fn serializer_registry(&self) -> Arc<dyn SerializerRegistry> {
-        self.serializer_registry.clone()
+    pub fn serializer_registry(&self) -> &Arc<dyn SerializerRegistry> {
+        &self.serializer_registry
     }
 
     /// Return version of the cargo package that produced this query
diff --git a/datafusion/expr/src/udaf.rs b/datafusion/expr/src/udaf.rs
index a248518c2d..c836269145 100644
--- a/datafusion/expr/src/udaf.rs
+++ b/datafusion/expr/src/udaf.rs
@@ -124,8 +124,8 @@ impl AggregateUDF {
     }
 
     /// Return the underlying [`AggregateUDFImpl`] trait object for this 
function
-    pub fn inner(&self) -> Arc<dyn AggregateUDFImpl> {
-        self.inner.clone()
+    pub fn inner(&self) -> &Arc<dyn AggregateUDFImpl> {
+        &self.inner
     }
 
     /// Adds additional names that can be used to invoke this function, in
diff --git a/datafusion/expr/src/udf.rs b/datafusion/expr/src/udf.rs
index e14b62f1c8..03650b1d47 100644
--- a/datafusion/expr/src/udf.rs
+++ b/datafusion/expr/src/udf.rs
@@ -105,8 +105,8 @@ impl ScalarUDF {
     }
 
     /// Return the underlying [`ScalarUDFImpl`] trait object for this function
-    pub fn inner(&self) -> Arc<dyn ScalarUDFImpl> {
-        self.inner.clone()
+    pub fn inner(&self) -> &Arc<dyn ScalarUDFImpl> {
+        &self.inner
     }
 
     /// Adds additional names that can be used to invoke this function, in
diff --git a/datafusion/expr/src/udwf.rs b/datafusion/expr/src/udwf.rs
index ce28b444ad..a17bb0ade8 100644
--- a/datafusion/expr/src/udwf.rs
+++ b/datafusion/expr/src/udwf.rs
@@ -108,8 +108,8 @@ impl WindowUDF {
     }
 
     /// Return the underlying [`WindowUDFImpl`] trait object for this function
-    pub fn inner(&self) -> Arc<dyn WindowUDFImpl> {
-        self.inner.clone()
+    pub fn inner(&self) -> &Arc<dyn WindowUDFImpl> {
+        &self.inner
     }
 
     /// Adds additional names that can be used to invoke this function, in


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

Reply via email to