iceberg-cpp
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
iceberg::ReferenceVisitor Class Reference

Visitor to collect referenced field IDs from an expression. More...

#include <binder.h>

Inheritance diagram for iceberg::ReferenceVisitor:
iceberg::ExpressionVisitor< FieldIdsSetRef >

Public Member Functions

Result< FieldIdsSetRef > AlwaysTrue () override
 Visit a True expression (always evaluates to true).
 
Result< FieldIdsSetRef > AlwaysFalse () override
 Visit a False expression (always evaluates to false).
 
Result< FieldIdsSetRef > Not (const FieldIdsSetRef &child_result) override
 
Result< FieldIdsSetRef > And (const FieldIdsSetRef &left_result, const FieldIdsSetRef &right_result) override
 
Result< FieldIdsSetRef > Or (const FieldIdsSetRef &left_result, const FieldIdsSetRef &right_result) override
 
Result< FieldIdsSetRef > Predicate (const std::shared_ptr< BoundPredicate > &pred) override
 Visit a bound predicate.
 
Result< FieldIdsSetRef > Predicate (const std::shared_ptr< UnboundPredicate > &pred) override
 Visit an unbound predicate.
 
Result< FieldIdsSetRef > Aggregate (const std::shared_ptr< BoundAggregate > &aggregate) override
 Visit a bound aggregate.
 
Result< FieldIdsSetRef > Aggregate (const std::shared_ptr< UnboundAggregate > &aggregate) override
 Visit an unbound aggregate.
 
- Public Member Functions inherited from iceberg::ExpressionVisitor< FieldIdsSetRef >
virtual Result< FieldIdsSetRef > Not (ParamType child_result)=0
 Visit a Not expression.
 
virtual Result< FieldIdsSetRef > And (ParamType left_result, ParamType right_result)=0
 Visit an And expression.
 
virtual Result< FieldIdsSetRef > Or (ParamType left_result, ParamType right_result)=0
 Visit an Or expression.
 

Static Public Member Functions

static Result< std::unordered_set< int32_t > > GetReferencedFieldIds (const std::shared_ptr< Expression > &expr)
 

Detailed Description

Visitor to collect referenced field IDs from an expression.

Member Function Documentation

◆ Aggregate() [1/2]

Result< FieldIdsSetRef > iceberg::ReferenceVisitor::Aggregate ( const std::shared_ptr< BoundAggregate > &  aggregate)
overridevirtual

Visit a bound aggregate.

Parameters
aggregateThe bound aggregate to visit.

Reimplemented from iceberg::ExpressionVisitor< FieldIdsSetRef >.

◆ Aggregate() [2/2]

Result< FieldIdsSetRef > iceberg::ReferenceVisitor::Aggregate ( const std::shared_ptr< UnboundAggregate > &  aggregate)
overridevirtual

Visit an unbound aggregate.

Parameters
aggregateThe unbound aggregate to visit.

Reimplemented from iceberg::ExpressionVisitor< FieldIdsSetRef >.

◆ AlwaysFalse()

Result< FieldIdsSetRef > iceberg::ReferenceVisitor::AlwaysFalse ( )
overridevirtual

Visit a False expression (always evaluates to false).

Implements iceberg::ExpressionVisitor< FieldIdsSetRef >.

◆ AlwaysTrue()

Result< FieldIdsSetRef > iceberg::ReferenceVisitor::AlwaysTrue ( )
overridevirtual

Visit a True expression (always evaluates to true).

Implements iceberg::ExpressionVisitor< FieldIdsSetRef >.

◆ Predicate() [1/2]

Result< FieldIdsSetRef > iceberg::ReferenceVisitor::Predicate ( const std::shared_ptr< BoundPredicate > &  pred)
overridevirtual

Visit a bound predicate.

Parameters
predThe bound predicate to visit

Implements iceberg::ExpressionVisitor< FieldIdsSetRef >.

◆ Predicate() [2/2]

Result< FieldIdsSetRef > iceberg::ReferenceVisitor::Predicate ( const std::shared_ptr< UnboundPredicate > &  pred)
overridevirtual

Visit an unbound predicate.

Parameters
predThe unbound predicate to visit

Implements iceberg::ExpressionVisitor< FieldIdsSetRef >.


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