17 #ifndef QUERYENGINE_EXPRESSIONREWRITE_H
18 #define QUERYENGINE_EXPRESSIONREWRITE_H
20 #include <boost/optional.hpp>
47 std::list<std::shared_ptr<Analyzer::Expr>>
quals;
52 const std::shared_ptr<Analyzer::Expr> expr);
55 const std::list<std::shared_ptr<Analyzer::Expr>>& quals,
60 #endif // QUERYENGINE_EXPRESSIONREWRITE_H
Defines data structures for the semantic analysis phase of query processing.
Analyzer::ExpressionPtr rewrite_array_elements(Analyzer::Expr const *expr)
std::list< std::shared_ptr< Analyzer::Expr > > quals
std::shared_ptr< Analyzer::Expr > ExpressionPtr
std::list< std::shared_ptr< Analyzer::Expr > > join_quals
std::vector< JoinCondition > JoinQualsPerNestingLevel
Analyzer::ExpressionPtr rewrite_expr(const Analyzer::Expr *expr)
std::list< std::shared_ptr< Analyzer::Expr > > strip_join_covered_filter_quals(const std::list< std::shared_ptr< Analyzer::Expr >> &quals, const JoinQualsPerNestingLevel &join_quals)
boost::optional< OverlapsJoinConjunction > rewrite_overlaps_conjunction(const std::shared_ptr< Analyzer::Expr > expr)
Execution unit for relational algebra. It's a low-level description of any relational algebra operati...
std::shared_ptr< Analyzer::Expr > fold_expr(const Analyzer::Expr *expr)