geoffreyclaude commented on issue #22557: URL: https://github.com/apache/datafusion/issues/22557#issuecomment-4553460932
Additional context: this is not only a `datafusion-tracing` concern. At DataDog, we also have internal `ExecutionPlan` wrappers that are intended to be transparent to downstream plan inspection code. I will avoid going into implementation details here, but the pattern is the same: the wrapper delegates execution-plan behavior to an inner node while preserving the inner node’s observable type identity for callers that use `as_any()` / downcasting. In practice, the overridable `ExecutionPlan::as_any` had become more than boilerplate: it was a customization point for wrapper nodes. Removing it and replacing it with inherent `dyn ExecutionPlan::is::<T>()` / `downcast_ref::<T>()` changes that behavior because wrappers no longer have a way to opt into transparency. So I think the compatibility concern is broader than one public crate: transparent wrappers appear to be a real extension pattern around `ExecutionPlan`, and it would be useful for DataFusion to either support that pattern explicitly or document that downcasting now intentionally reflects only the concrete outer wrapper type. -- 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]
