iceberg-cpp
Loading...
Searching...
No Matches
Public Member Functions | List of all members
iceberg::BoundVisitor< R > Class Template Referenceabstract

Visitor for bound expressions. More...

#include <expression_visitor.h>

Inheritance diagram for iceberg::BoundVisitor< R >:
iceberg::ExpressionVisitor< R >

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.
 

Detailed Description

template<typename R>
class iceberg::BoundVisitor< R >

Visitor for bound expressions.

This visitor is for traversing bound expression trees.

Template Parameters
RThe return type produced by visitor methods

Member Function Documentation

◆ Eq()

template<typename R >
virtual Result< R > iceberg::BoundVisitor< R >::Eq ( const std::shared_ptr< Bound > &  expr,
const Literal lit 
)
pure virtual

Visit an equality bound expression.

Parameters
exprThe bound expression being tested
litThe literal value to compare against

Implemented in iceberg::EvalVisitor, iceberg::InclusiveMetricsVisitor, iceberg::ManifestEvalVisitor, and iceberg::StrictMetricsVisitor.

◆ Gt()

template<typename R >
virtual Result< R > iceberg::BoundVisitor< R >::Gt ( const std::shared_ptr< Bound > &  expr,
const Literal lit 
)
pure virtual

Visit a greater-than bound expression.

Parameters
exprThe bound expression being tested
litThe literal value to compare against

Implemented in iceberg::EvalVisitor, iceberg::InclusiveMetricsVisitor, iceberg::ManifestEvalVisitor, and iceberg::StrictMetricsVisitor.

◆ GtEq()

template<typename R >
virtual Result< R > iceberg::BoundVisitor< R >::GtEq ( const std::shared_ptr< Bound > &  expr,
const Literal lit 
)
pure virtual

Visit a greater-than-or-equal bound expression.

Parameters
exprThe bound expression being tested
litThe literal value to compare against

Implemented in iceberg::EvalVisitor, iceberg::InclusiveMetricsVisitor, iceberg::ManifestEvalVisitor, and iceberg::StrictMetricsVisitor.

◆ In()

template<typename R >
virtual Result< R > iceberg::BoundVisitor< R >::In ( const std::shared_ptr< Bound > &  expr,
const BoundSetPredicate::LiteralSet &  literal_set 
)
inlinevirtual

Visit an IN set bound expression.

Parameters
exprThe bound expression being tested
literal_setThe set of literal values to test membership

Reimplemented in iceberg::EvalVisitor, iceberg::InclusiveMetricsVisitor, iceberg::ManifestEvalVisitor, and iceberg::StrictMetricsVisitor.

◆ IsNaN()

template<typename R >
virtual Result< R > iceberg::BoundVisitor< R >::IsNaN ( const std::shared_ptr< Bound > &  expr)
inlinevirtual

Visit an IS_NAN bound expression.

Parameters
exprThe bound expression being tested

Reimplemented in iceberg::EvalVisitor, iceberg::InclusiveMetricsVisitor, iceberg::ManifestEvalVisitor, and iceberg::StrictMetricsVisitor.

◆ IsNull()

template<typename R >
virtual Result< R > iceberg::BoundVisitor< R >::IsNull ( const std::shared_ptr< Bound > &  expr)
pure virtual

Visit an IS_NULL bound expression.

Parameters
exprThe bound expression being tested

Implemented in iceberg::EvalVisitor, iceberg::InclusiveMetricsVisitor, iceberg::ManifestEvalVisitor, and iceberg::StrictMetricsVisitor.

◆ Lt()

template<typename R >
virtual Result< R > iceberg::BoundVisitor< R >::Lt ( const std::shared_ptr< Bound > &  expr,
const Literal lit 
)
pure virtual

Visit a less-than bound expression.

Parameters
exprThe bound expression being tested
litThe literal value to compare against

Implemented in iceberg::EvalVisitor, iceberg::InclusiveMetricsVisitor, iceberg::ManifestEvalVisitor, and iceberg::StrictMetricsVisitor.

◆ LtEq()

template<typename R >
virtual Result< R > iceberg::BoundVisitor< R >::LtEq ( const std::shared_ptr< Bound > &  expr,
const Literal lit 
)
pure virtual

Visit a less-than-or-equal bound expression.

Parameters
exprThe bound expression being tested
litThe literal value to compare against

Implemented in iceberg::EvalVisitor, iceberg::InclusiveMetricsVisitor, iceberg::ManifestEvalVisitor, and iceberg::StrictMetricsVisitor.

◆ NotEq()

template<typename R >
virtual Result< R > iceberg::BoundVisitor< R >::NotEq ( const std::shared_ptr< Bound > &  expr,
const Literal lit 
)
pure virtual

Visit a not-equal bound expression.

Parameters
exprThe bound expression being tested
litThe literal value to compare against

Implemented in iceberg::EvalVisitor, iceberg::InclusiveMetricsVisitor, iceberg::ManifestEvalVisitor, and iceberg::StrictMetricsVisitor.

◆ NotIn()

template<typename R >
virtual Result< R > iceberg::BoundVisitor< R >::NotIn ( const std::shared_ptr< Bound > &  expr,
const BoundSetPredicate::LiteralSet &  literal_set 
)
inlinevirtual

Visit a NOT_IN set bound expression.

Parameters
exprThe bound expression being tested
literal_setThe set of literal values to test membership

Reimplemented in iceberg::EvalVisitor, iceberg::InclusiveMetricsVisitor, iceberg::ManifestEvalVisitor, and iceberg::StrictMetricsVisitor.

◆ NotNaN()

template<typename R >
virtual Result< R > iceberg::BoundVisitor< R >::NotNaN ( const std::shared_ptr< Bound > &  expr)
inlinevirtual

Visit a NOT_NAN bound expression.

Parameters
exprThe bound expression being tested

Reimplemented in iceberg::EvalVisitor, iceberg::InclusiveMetricsVisitor, iceberg::ManifestEvalVisitor, and iceberg::StrictMetricsVisitor.

◆ NotNull()

template<typename R >
virtual Result< R > iceberg::BoundVisitor< R >::NotNull ( const std::shared_ptr< Bound > &  expr)
pure virtual

Visit a NOT_NULL bound expression.

Parameters
exprThe bound expression being tested

Implemented in iceberg::EvalVisitor, iceberg::InclusiveMetricsVisitor, iceberg::ManifestEvalVisitor, and iceberg::StrictMetricsVisitor.

◆ NotStartsWith()

template<typename R >
virtual Result< R > iceberg::BoundVisitor< R >::NotStartsWith ( const std::shared_ptr< Bound > &  expr,
const Literal lit 
)
inlinevirtual

Visit a not-starts-with bound expression.

Parameters
exprThe bound expression being tested
litThe literal value to check for prefix match

Reimplemented in iceberg::EvalVisitor, iceberg::InclusiveMetricsVisitor, iceberg::ManifestEvalVisitor, and iceberg::StrictMetricsVisitor.

◆ Predicate() [1/2]

template<typename R >
Result< R > iceberg::BoundVisitor< R >::Predicate ( const std::shared_ptr< BoundPredicate > &  pred)
inlineoverridevirtual

Visit a bound predicate.

This method dispatches to specific visitor methods based on the predicate type and operation.

Parameters
predThe bound predicate to visit

Implements iceberg::ExpressionVisitor< R >.

◆ Predicate() [2/2]

template<typename R >
Result< R > iceberg::BoundVisitor< R >::Predicate ( const std::shared_ptr< UnboundPredicate > &  pred)
inlineoverridevirtual

Visit an unbound predicate.

Parameters
predThe unbound predicate

Implements iceberg::ExpressionVisitor< R >.

◆ StartsWith()

template<typename R >
virtual Result< R > iceberg::BoundVisitor< R >::StartsWith ( const std::shared_ptr< Bound > &  expr,
const Literal lit 
)
inlinevirtual

Visit a starts-with bound expression.

Parameters
exprThe bound expression being tested
litThe literal value to check for prefix match

Reimplemented in iceberg::EvalVisitor, iceberg::InclusiveMetricsVisitor, iceberg::ManifestEvalVisitor, and iceberg::StrictMetricsVisitor.


The documentation for this class was generated from the following file: