rtpsw commented on issue #34786: URL: https://github.com/apache/arrow/issues/34786#issuecomment-1494735294
> 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. -- 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]
