aokolnychyi commented on pull request #1715: URL: https://github.com/apache/iceberg/pull/1715#issuecomment-729118553
I missed the recent changes in the Actions API. I think building a hierarchy of classes to share across query engines (with engine-specific code) using single class inheritance in Java is going to be hard. I think Russell has already faced this problem in this PR and I faced it too while suggesting another way to fix it. I'd propose to share only Action interfaces between different query engines and build utility classes for common logic. That way, we have more flexibility. Right now, only certain actions in Spark extend `BaseSparkAction` which makes it hard to put common Spark logic there. Moreover, if an action extends `BaseSnapshotUpdateAction`, there is no way it can extend `BaseSparkAction`. Here is the [commit](https://github.com/aokolnychyi/incubator-iceberg/commit/f907123374f7851aeb16821fb243befe9ca9866e) with the idea in which direction this PR should go. However, we need to rework the hierarchy before that. @RussellSpitzer @openinx @zhangjun0x01 @rdblue, what are your thoughts on this? Do you think it is reasonable to share only interfaces for actions and build utility classes in core for rest? ---------------------------------------------------------------- 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. For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
