38 const std::shared_ptr<Expression>& child_result)
override;
40 const std::shared_ptr<Expression>& left_result,
41 const std::shared_ptr<Expression>& right_result)
override;
43 const std::shared_ptr<Expression>& left_result,
44 const std::shared_ptr<Expression>& right_result)
override;
46 const std::shared_ptr<BoundPredicate>& pred)
override;
48 const std::shared_ptr<UnboundPredicate>& pred)
override;
An Expression that represents a logical AND operation between two expressions.
Definition expression.h:139
Base visitor for traversing expression trees.
Definition expression_visitor.h:49
An Expression that represents logical NOT operation.
Definition expression.h:289
An Expression that represents a logical OR operation between two expressions.
Definition expression.h:215
Definition rewrite_not.h:31
Result< std::shared_ptr< Expression > > Predicate(const std::shared_ptr< BoundPredicate > &pred) override
Visit a bound predicate.
Result< std::shared_ptr< Expression > > Predicate(const std::shared_ptr< UnboundPredicate > &pred) override
Visit an unbound predicate.
Result< std::shared_ptr< Expression > > AlwaysTrue() override
Visit a True expression (always evaluates to true).
Result< std::shared_ptr< Expression > > AlwaysFalse() override
Visit a False expression (always evaluates to false).
Core Apache Iceberg C++ APIs.
Definition arrow_io_util.h:33
std::expected< T, E > Result
Result alias.
Definition result.h:88
Result< R > Visit(const std::shared_ptr< Expression > &expr, V &visitor)
Traverse an expression tree with a visitor.
Definition expression_visitor.h:283