jayzhan211 commented on PR #13305: URL: https://github.com/apache/datafusion/pull/13305#issuecomment-2466242845
> > @sydduckworth Do you remember why `cast should drop input metadata since the type has changed` > > When I wrote my PR, I had to make a decision about how to handle metadata propagation across expressions. It seemed logical to me that the `Column` and `Alias` expressions should forward the source field's metadata, but my concern for other expressions was that forwarding the metadata could produce unexpected behavior, so I decided they would drop just any metadata in the source fields. > > The only one I wasn't sure about was `Cast` since I could see an argument for it preserving the source metadata, but I eventually just went with the idea that any expression that can change the datatype of the input should reset its metadata and added that test assertion verify the behavior. > > Long story short: there's no reason for that assertion other than my arbitrary decision when implementing the feature. To me it seems reasonable to change the behavior of `Cast` and remove (or invert) that assertion so the logical plan behavior matches the physical plan behavior. Thanks for your reply, I think we can skip the assertion given the change is little. We can consider to ignore the metadata if we meet any case that blocking us to matches the plan checking -- 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]
