|
iceberg-cpp
|
Visitor for bound expressions. More...
#include <expression_visitor.h>
Public Member Functions | |
| virtual Result< R > | IsNull (const std::shared_ptr< Bound > &expr)=0 |
| Visit an IS_NULL bound expression. | |
| virtual Result< R > | NotNull (const std::shared_ptr< Bound > &expr)=0 |
| Visit a NOT_NULL bound expression. | |
| virtual Result< R > | IsNaN (const std::shared_ptr< Bound > &expr) |
| Visit an IS_NAN bound expression. | |
| virtual Result< R > | NotNaN (const std::shared_ptr< Bound > &expr) |
| Visit a NOT_NAN bound expression. | |
| virtual Result< R > | Lt (const std::shared_ptr< Bound > &expr, const Literal &lit)=0 |
| Visit a less-than bound expression. | |
| virtual Result< R > | LtEq (const std::shared_ptr< Bound > &expr, const Literal &lit)=0 |
| Visit a less-than-or-equal bound expression. | |
| virtual Result< R > | Gt (const std::shared_ptr< Bound > &expr, const Literal &lit)=0 |
| Visit a greater-than bound expression. | |
| virtual Result< R > | GtEq (const std::shared_ptr< Bound > &expr, const Literal &lit)=0 |
| Visit a greater-than-or-equal bound expression. | |
| virtual Result< R > | Eq (const std::shared_ptr< Bound > &expr, const Literal &lit)=0 |
| Visit an equality bound expression. | |
| virtual Result< R > | NotEq (const std::shared_ptr< Bound > &expr, const Literal &lit)=0 |
| Visit a not-equal bound expression. | |
| virtual Result< R > | StartsWith (const std::shared_ptr< Bound > &expr, const Literal &lit) |
| Visit a starts-with bound expression. | |
| virtual Result< R > | NotStartsWith (const std::shared_ptr< Bound > &expr, const Literal &lit) |
| Visit a not-starts-with bound expression. | |
| virtual Result< R > | In (const std::shared_ptr< Bound > &expr, const BoundSetPredicate::LiteralSet &literal_set) |
| Visit an IN set bound expression. | |
| virtual Result< R > | NotIn (const std::shared_ptr< Bound > &expr, const BoundSetPredicate::LiteralSet &literal_set) |
| Visit a NOT_IN set bound expression. | |
| Result< R > | Predicate (const std::shared_ptr< BoundPredicate > &pred) override |
| Visit a bound predicate. | |
| Result< R > | Predicate (const std::shared_ptr< UnboundPredicate > &pred) override |
| Visit an unbound predicate. | |
Public Member Functions inherited from iceberg::ExpressionVisitor< R > | |
| virtual Result< R > | AlwaysTrue ()=0 |
| Visit a True expression (always evaluates to true). | |
| virtual Result< R > | AlwaysFalse ()=0 |
| Visit a False expression (always evaluates to false). | |
| virtual Result< R > | Not (ParamType child_result)=0 |
| Visit a Not expression. | |
| virtual Result< R > | And (ParamType left_result, ParamType right_result)=0 |
| Visit an And expression. | |
| virtual Result< R > | Or (ParamType left_result, ParamType right_result)=0 |
| Visit an Or expression. | |
| virtual Result< R > | Aggregate (const std::shared_ptr< BoundAggregate > &aggregate) |
| Visit a bound aggregate. | |
| virtual Result< R > | Aggregate (const std::shared_ptr< UnboundAggregate > &aggregate) |
| Visit an unbound aggregate. | |
Visitor for bound expressions.
This visitor is for traversing bound expression trees.
| R | The return type produced by visitor methods |
|
pure virtual |
Visit an equality bound expression.
| expr | The bound expression being tested |
| lit | The literal value to compare against |
Implemented in iceberg::EvalVisitor, iceberg::InclusiveMetricsVisitor, iceberg::ManifestEvalVisitor, and iceberg::StrictMetricsVisitor.
|
pure virtual |
Visit a greater-than bound expression.
| expr | The bound expression being tested |
| lit | The literal value to compare against |
Implemented in iceberg::EvalVisitor, iceberg::InclusiveMetricsVisitor, iceberg::ManifestEvalVisitor, and iceberg::StrictMetricsVisitor.
|
pure virtual |
Visit a greater-than-or-equal bound expression.
| expr | The bound expression being tested |
| lit | The literal value to compare against |
Implemented in iceberg::EvalVisitor, iceberg::InclusiveMetricsVisitor, iceberg::ManifestEvalVisitor, and iceberg::StrictMetricsVisitor.
|
inlinevirtual |
Visit an IN set bound expression.
| expr | The bound expression being tested |
| literal_set | The set of literal values to test membership |
Reimplemented in iceberg::EvalVisitor, iceberg::InclusiveMetricsVisitor, iceberg::ManifestEvalVisitor, and iceberg::StrictMetricsVisitor.
|
inlinevirtual |
Visit an IS_NAN bound expression.
| expr | The bound expression being tested |
Reimplemented in iceberg::EvalVisitor, iceberg::InclusiveMetricsVisitor, iceberg::ManifestEvalVisitor, and iceberg::StrictMetricsVisitor.
|
pure virtual |
Visit an IS_NULL bound expression.
| expr | The bound expression being tested |
Implemented in iceberg::EvalVisitor, iceberg::InclusiveMetricsVisitor, iceberg::ManifestEvalVisitor, and iceberg::StrictMetricsVisitor.
|
pure virtual |
Visit a less-than bound expression.
| expr | The bound expression being tested |
| lit | The literal value to compare against |
Implemented in iceberg::EvalVisitor, iceberg::InclusiveMetricsVisitor, iceberg::ManifestEvalVisitor, and iceberg::StrictMetricsVisitor.
|
pure virtual |
Visit a less-than-or-equal bound expression.
| expr | The bound expression being tested |
| lit | The literal value to compare against |
Implemented in iceberg::EvalVisitor, iceberg::InclusiveMetricsVisitor, iceberg::ManifestEvalVisitor, and iceberg::StrictMetricsVisitor.
|
pure virtual |
Visit a not-equal bound expression.
| expr | The bound expression being tested |
| lit | The literal value to compare against |
Implemented in iceberg::EvalVisitor, iceberg::InclusiveMetricsVisitor, iceberg::ManifestEvalVisitor, and iceberg::StrictMetricsVisitor.
|
inlinevirtual |
Visit a NOT_IN set bound expression.
| expr | The bound expression being tested |
| literal_set | The set of literal values to test membership |
Reimplemented in iceberg::EvalVisitor, iceberg::InclusiveMetricsVisitor, iceberg::ManifestEvalVisitor, and iceberg::StrictMetricsVisitor.
|
inlinevirtual |
Visit a NOT_NAN bound expression.
| expr | The bound expression being tested |
Reimplemented in iceberg::EvalVisitor, iceberg::InclusiveMetricsVisitor, iceberg::ManifestEvalVisitor, and iceberg::StrictMetricsVisitor.
|
pure virtual |
Visit a NOT_NULL bound expression.
| expr | The bound expression being tested |
Implemented in iceberg::EvalVisitor, iceberg::InclusiveMetricsVisitor, iceberg::ManifestEvalVisitor, and iceberg::StrictMetricsVisitor.
|
inlinevirtual |
Visit a not-starts-with bound expression.
| expr | The bound expression being tested |
| lit | The literal value to check for prefix match |
Reimplemented in iceberg::EvalVisitor, iceberg::InclusiveMetricsVisitor, iceberg::ManifestEvalVisitor, and iceberg::StrictMetricsVisitor.
|
inlineoverridevirtual |
Visit a bound predicate.
This method dispatches to specific visitor methods based on the predicate type and operation.
| pred | The bound predicate to visit |
Implements iceberg::ExpressionVisitor< R >.
|
inlineoverridevirtual |
Visit an unbound predicate.
| pred | The unbound predicate |
Implements iceberg::ExpressionVisitor< R >.
|
inlinevirtual |
Visit a starts-with bound expression.
| expr | The bound expression being tested |
| lit | The literal value to check for prefix match |
Reimplemented in iceberg::EvalVisitor, iceberg::InclusiveMetricsVisitor, iceberg::ManifestEvalVisitor, and iceberg::StrictMetricsVisitor.