icexelloss commented on issue #34786: URL: https://github.com/apache/arrow/issues/34786#issuecomment-1494748329
> > Can you give an example of when does the output schema differs in "planning-time" vs "execution'time"? > > At execution-time, one can, for example, [pass a `FunctionRegistry` to `ExecuteSerializedPlan`](https://github.com/apache/arrow/blob/0e1f5c6c2ce7504d86dd10d91ab7d29c2441d4ce/cpp/src/arrow/engine/substrait/util.h#L54-L58) that is different than the default `GetFunctionRegistry()` one. The passed registry is allowed to override functions, add kernels, or completely redefine the set of registered functions - making this registry incompatible with the default one used in planning-time for output schema purposes. Granted, this would not be a usual use-case, but it is a supported one. > > My point is that it is a design problem when Acero supports a choice of function registry at execution-time but not at planning-time, because the two choices should be compatible for things to work. I see - Thanks for the explanation. I am not concerned then. (If someone is passing a Function Registry and changes output schema of existing functions then things certainly will not work) -- 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]
