#pragma once
#include "logical_operator_visitor.h"
#include "planner/operator/logical_plan.h"
namespace lbug {
namespace optimizer {
class HashJoinSIPOptimizer final : public LogicalOperatorVisitor {
public:
void rewrite(const planner::LogicalPlan* plan);
private:
void visitOperator(planner::LogicalOperator* op);
void visitHashJoin(planner::LogicalOperator* op) override;
void visitIntersect(planner::LogicalOperator* op) override;
void visitPathPropertyProbe(planner::LogicalOperator* op) override;
};
} }