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]

Reply via email to