alamb commented on code in PR #13527:
URL: https://github.com/apache/datafusion/pull/13527#discussion_r1856449804


##########
datafusion-examples/examples/expr_api.rs:
##########
@@ -356,8 +357,13 @@ fn type_coercion_demo() -> Result<()> {
 
     // Evaluation with an expression that has not been type coerced cannot 
succeed.
     let props = ExecutionProps::default();
-    let physical_expr =
-        datafusion_physical_expr::create_physical_expr(&expr, &df_schema, 
&props)?;
+    let config_options = Arc::new(ConfigOptions::default());
+    let physical_expr = datafusion_physical_expr::create_physical_expr(

Review Comment:
   It seems somewhat inevitable that creating a physical expr will require the 
config options
   
   However, I also think threading through the config options down through to 
the physical creation will (finally) permit people to pass things from the 
session down to function implementations (I think @cisaacson  also was trying 
to do this in the past) 



##########
datafusion/core/src/datasource/listing/helpers.rs:
##########
@@ -283,10 +284,16 @@ async fn prune_partitions(
 
     // TODO: Plumb this down

Review Comment:
   This todo may have now be complete 



##########
datafusion/expr/src/udf.rs:
##########
@@ -336,6 +337,8 @@ pub struct ScalarFunctionArgs<'a> {
     // The return type of the scalar function returned (from `return_type` or 
`return_type_from_exprs`)
     // when creating the physical expression from the logical expression
     pub return_type: &'a DataType,
+    // The config options which can be used to lookup configuration properties
+    pub config_options: Arc<ConfigOptions>,

Review Comment:
   🎉 



##########
datafusion/optimizer/src/simplify_expressions/expr_simplifier.rs:
##########
@@ -631,11 +631,18 @@ impl<'a> ConstEvaluator<'a> {
             return ConstSimplifyResult::NotSimplified(s);
         }
 
-        let phys_expr =
-            match create_physical_expr(&expr, &self.input_schema, 
self.execution_props) {
-                Ok(e) => e,
-                Err(err) => return 
ConstSimplifyResult::SimplifyRuntimeError(err, expr),
-            };
+        // todo - should the config options be the actual options here or is 
this sufficient?

Review Comment:
   I think the actual configuration options are needed here. Otherwise what 
will happen is that any function whose behavior relies on the ConfigOptions may 
have different behavior on columns and constants (or other expressions that can 
be constant folded)



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscr...@datafusion.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscr...@datafusion.apache.org
For additional commands, e-mail: github-h...@datafusion.apache.org

Reply via email to