27#include <unordered_set>
38 const std::shared_ptr<Expression>& expr,
44 const std::shared_ptr<Expression>& child_result)
override;
46 const std::shared_ptr<Expression>& left_result,
47 const std::shared_ptr<Expression>& right_result)
override;
49 const std::shared_ptr<Expression>& left_result,
50 const std::shared_ptr<Expression>& right_result)
override;
52 const std::shared_ptr<BoundPredicate>& pred)
override;
54 const std::shared_ptr<UnboundPredicate>& pred)
override;
56 const std::shared_ptr<BoundAggregate>& aggregate)
override;
58 const std::shared_ptr<UnboundAggregate>& aggregate)
override;
62 const bool case_sensitive_;
67 static Result<bool> IsBound(
const std::shared_ptr<Expression>& expr);
73 const std::optional<bool>& right_result)
override;
75 const std::optional<bool>& right_result)
override;
77 const std::shared_ptr<BoundPredicate>& pred)
override;
79 const std::shared_ptr<UnboundPredicate>& pred)
override;
81 const std::shared_ptr<BoundAggregate>& aggregate)
override;
83 const std::shared_ptr<UnboundAggregate>& aggregate)
override;
86using FieldIdsSetRef = std::reference_wrapper<std::unordered_set<int32_t>>;
92 const std::shared_ptr<Expression>& expr);
98 const FieldIdsSetRef& right_result)
override;
100 const FieldIdsSetRef& right_result)
override;
103 const std::shared_ptr<UnboundPredicate>& pred)
override;
105 const std::shared_ptr<BoundAggregate>& aggregate)
override;
107 const std::shared_ptr<UnboundAggregate>& aggregate)
override;
110 std::unordered_set<int32_t> referenced_field_ids_;
An Expression that represents a logical AND operation between two expressions.
Definition expression.h:139
Result< std::shared_ptr< Expression > > AlwaysFalse() override
Visit a False expression (always evaluates to false).
Result< std::shared_ptr< Expression > > Predicate(const std::shared_ptr< UnboundPredicate > &pred) override
Visit an unbound predicate.
Result< std::shared_ptr< Expression > > Aggregate(const std::shared_ptr< UnboundAggregate > &aggregate) override
Visit an unbound aggregate.
Result< std::shared_ptr< Expression > > Aggregate(const std::shared_ptr< BoundAggregate > &aggregate) override
Visit a bound aggregate.
Result< std::shared_ptr< Expression > > Predicate(const std::shared_ptr< BoundPredicate > &pred) override
Visit a bound predicate.
Result< std::shared_ptr< Expression > > AlwaysTrue() override
Visit a True expression (always evaluates to true).
Base visitor for traversing expression trees.
Definition expression_visitor.h:49
Result< std::optional< bool > > Aggregate(const std::shared_ptr< BoundAggregate > &aggregate) override
Visit a bound aggregate.
Result< std::optional< bool > > AlwaysFalse() override
Visit a False expression (always evaluates to false).
Result< std::optional< bool > > Aggregate(const std::shared_ptr< UnboundAggregate > &aggregate) override
Visit an unbound aggregate.
Result< std::optional< bool > > Predicate(const std::shared_ptr< BoundPredicate > &pred) override
Visit a bound predicate.
Result< std::optional< bool > > Predicate(const std::shared_ptr< UnboundPredicate > &pred) override
Visit an unbound predicate.
Result< std::optional< bool > > AlwaysTrue() override
Visit a True expression (always evaluates to true).
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
Visitor to collect referenced field IDs from an expression.
Definition binder.h:89
Result< FieldIdsSetRef > AlwaysTrue() override
Visit a True expression (always evaluates to true).
Result< FieldIdsSetRef > Aggregate(const std::shared_ptr< UnboundAggregate > &aggregate) override
Visit an unbound aggregate.
Result< FieldIdsSetRef > Predicate(const std::shared_ptr< BoundPredicate > &pred) override
Visit a bound predicate.
Result< FieldIdsSetRef > Aggregate(const std::shared_ptr< BoundAggregate > &aggregate) override
Visit a bound aggregate.
Result< FieldIdsSetRef > AlwaysFalse() override
Visit a False expression (always evaluates to false).
Result< FieldIdsSetRef > Predicate(const std::shared_ptr< UnboundPredicate > &pred) override
Visit an unbound predicate.
A schema for a Table.
Definition schema.h:51
Definition expected.h:1199
Core Apache Iceberg C++ APIs.
Definition arrow_io_util.h:34