blob: ed5e940e383580b08f44c00d4ba30e06d062ad58 [file] [log] [blame]
#ifndef QUICKSTEP_QUERY_OPTIMIZER_RULES_SWAP_PROBE_BUILD_HPP_
#define QUICKSTEP_QUERY_OPTIMIZER_RULES_SWAP_PROBE_BUILD_HPP_
#include <string>
#include "query_optimizer/physical/Physical.hpp"
#include "query_optimizer/rules/Rule.hpp"
#include "query_optimizer/rules/BottomUpRule.hpp"
#include "query_optimizer/cost_model/StarSchemaSimpleCostModel.hpp"
#include "utility/Macros.hpp"
namespace quickstep {
namespace optimizer {
namespace P = ::quickstep::optimizer::physical;
namespace E = ::quickstep::optimizer::expressions;
namespace C = ::quickstep::optimizer::cost;
class SwapProbeBuild : public BottomUpRule<P::Physical> {
public:
SwapProbeBuild() {
}
std::string getName() const override { return "SwapProbeBuild"; }
protected:
P::PhysicalPtr applyToNode(const P::PhysicalPtr &input) override;
private:
DISALLOW_COPY_AND_ASSIGN(SwapProbeBuild);
std::unique_ptr<C::StarSchemaSimpleCostModel> cost_model_;
};
}
}
#endif