You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@iceberg.apache.org by GitBox <gi...@apache.org> on 2019/12/04 20:47:08 UTC

[GitHub] [incubator-iceberg] rdblue opened a new pull request #686: Add transform expressions

rdblue opened a new pull request #686: Add transform expressions
URL: https://github.com/apache/incubator-iceberg/pull/686
 
 
   This is to support the changes in #589. Sort order should use the same transforms as partition specs, and should use the same expression classes as filters. This adds a new type of expression, `ValueExpression<T>` that produces non-boolean values of type `T`. This also adds transform expressions and updates the `Expressions` helpers to produce transform expressions.
   
   Two expressions implement `ValueExpression`: transforms and references. Both have bound and unbound variants that extend new `Bound` and `Unbound` interfaces. Predicate classes are updated to have a `ValueExpression` child that may be a reference or a transformed reference.
   
   To avoid problems in eval visitors, this adds a new expression visitor class, `BoundExpressionReferenceVisitor` that ensures predicates contain no transforms, only references. This avoids needing to update all of the visitors to support transforms right away because they are safe to use and will throw exceptions when used with a transform expression.
   
   The current boolean expression base interface, `Expression` is not changed, although it would make more sense to rename it to `BooleanExpression` and use `Expression` instead of `ValueExpression`.

----------------------------------------------------------------
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:
users@infra.apache.org


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org