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 ecc1c01f76 Register SQL planners in `SessionState` constructor (#11253)
ecc1c01f76 is described below

commit ecc1c01f76eb27ad8b7a44093f4ee7e9bdc9229d
Author: Dharan Aditya <[email protected]>
AuthorDate: Thu Jul 4 03:18:44 2024 +0530

    Register SQL planners in `SessionState` constructor (#11253)
    
    * Register SQL planners in SessionState constructor
    
    * update map capacity with user_defined_sql_planners ref count
    
    * formatting
    
    * undo last
    
    ---------
    
    Co-authored-by: Andrew Lamb <[email protected]>
---
 datafusion/core/src/execution/session_state.rs | 44 +++++++++++++-------------
 1 file changed, 22 insertions(+), 22 deletions(-)

diff --git a/datafusion/core/src/execution/session_state.rs 
b/datafusion/core/src/execution/session_state.rs
index 084557d99e..8e8adc32ab 100644
--- a/datafusion/core/src/execution/session_state.rs
+++ b/datafusion/core/src/execution/session_state.rs
@@ -231,10 +231,31 @@ impl SessionState {
             );
         }
 
+        let mut user_defined_sql_planners = vec![];
+
+        // register crate of array expressions (if enabled)
+        #[cfg(feature = "array_expressions")]
+        {
+            let array_planner =
+                Arc::new(functions_array::planner::ArrayFunctionPlanner) as _;
+
+            let field_access_planner =
+                Arc::new(functions_array::planner::FieldAccessPlanner) as _;
+
+            user_defined_sql_planners.extend(vec![array_planner, 
field_access_planner]);
+        }
+        #[cfg(feature = "datetime_expressions")]
+        {
+            let extract_planner =
+                
Arc::new(functions::datetime::planner::ExtractPlanner::default()) as _;
+
+            user_defined_sql_planners.push(extract_planner);
+        }
+
         let mut new_self = SessionState {
             session_id,
             analyzer: Analyzer::new(),
-            user_defined_sql_planners: vec![],
+            user_defined_sql_planners,
             optimizer: Optimizer::new(),
             physical_optimizers: PhysicalOptimizer::new(),
             query_planner: Arc::new(DefaultQueryPlanner {}),
@@ -958,27 +979,6 @@ impl SessionState {
             query = query.with_user_defined_planner(planner.clone());
         }
 
-        // register crate of array expressions (if enabled)
-        #[cfg(feature = "array_expressions")]
-        {
-            let array_planner =
-                Arc::new(functions_array::planner::ArrayFunctionPlanner) as _;
-
-            let field_access_planner =
-                Arc::new(functions_array::planner::FieldAccessPlanner) as _;
-
-            query = query
-                .with_user_defined_planner(array_planner)
-                .with_user_defined_planner(field_access_planner);
-        }
-        #[cfg(feature = "datetime_expressions")]
-        {
-            let extract_planner =
-                
Arc::new(functions::datetime::planner::ExtractPlanner::default()) as _;
-
-            query = query.with_user_defined_planner(extract_planner);
-        }
-
         query
     }
 }


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

Reply via email to