substrait-io / substrait-java

Apache License 2.0
72 stars 70 forks source link

feat: exhaustive copy on write visitors #199

Closed vbarua closed 8 months ago

vbarua commented 8 months ago

BREAKING CHANGE: RelCopyOnWriteVisitor now extends RelVisitor and has generic type parameter

vbarua commented 8 months ago

These changes introduce a new public ExpressionCopyOnWriteVisitor class and switch the RelCopyOnWriteVisitor over to use the RelVisitor (instead of AbstractRelVisitor) to force the implementation of all visit methods.

The purpose of this is to ensure a complete visitation over relations and expressions in order to enable relation rewrites THROUGH subqueries in expressions.