choplin commented on code in PR #23063:
URL: https://github.com/apache/datafusion/pull/23063#discussion_r3623581941


##########
datafusion/expr/src/expr.rs:
##########
@@ -930,21 +930,32 @@ pub struct ScalarFunction {
     pub func: Arc<crate::ScalarUDF>,
     /// List of expressions to feed to the functions as arguments
     pub args: Vec<Expr>,
+    /// Original source code location, if known
+    pub spans: Spans,

Review Comment:
   Sorry for the slow reply here!
   
   You're right about the semver break — adding `spans` to these public structs 
trips
   `constructible_struct_adds_field`.
   
   My thinking so far: I noticed `Column` already carries the same `pub spans: 
Spans`
   field, added the same way to that (publicly constructible) struct in the 
earlier
   diagnostics work (#13664) — so one direction would be to stay consistent 
with that
   precedent. Another would be to keep the span off these struct layouts 
entirely and
   validate arguments eagerly in `SqlToRel`, where the call-site span is 
already in scope,
   so the diagnostic is attached at planning time.
   
   I'm not sure which fits best here, though, and there may well be a cleaner
   semver-compatible approach I'm not seeing. Do you have a direction you'd 
prefer — or a
   better idea than either of these?



-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


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

Reply via email to