17 #ifndef QUERYENGINE_RELALGOPTIMIZER_H
18 #define QUERYENGINE_RELALGOPTIMIZER_H
21 #include <unordered_map>
22 #include <unordered_set>
28 std::unordered_map<const RelAlgNode*, std::unordered_set<const RelAlgNode*>>
build_du_web(
29 const std::vector<std::shared_ptr<RelAlgNode>>& nodes) noexcept;
36 std::vector<std::shared_ptr<
RelAlgNode>>& nodes) noexcept;
39 std::vector<std::shared_ptr<
RelAlgNode>>& nodes) noexcept;
41 #endif // QUERYENGINE_RELALGOPTIMIZER_H
std::unordered_map< const RelAlgNode *, std::unordered_set< const RelAlgNode * > > build_du_web(const std::vector< std::shared_ptr< RelAlgNode >> &nodes) noexcept
void hoist_filter_cond_to_cross_join(std::vector< std::shared_ptr< RelAlgNode >> &nodes) noexcept
void sink_projected_boolean_expr_to_join(std::vector< std::shared_ptr< RelAlgNode >> &nodes) noexcept
void eliminate_identical_copy(std::vector< std::shared_ptr< RelAlgNode >> &nodes) noexcept
void simplify_sort(std::vector< std::shared_ptr< RelAlgNode >> &nodes) noexcept
void fold_filters(std::vector< std::shared_ptr< RelAlgNode >> &nodes) noexcept
void eliminate_dead_subqueries(std::vector< std::shared_ptr< RexSubQuery >> &subqueries, RelAlgNode const *root)
void eliminate_dead_columns(std::vector< std::shared_ptr< RelAlgNode >> &nodes) noexcept