cbo_simple.cpp 946 B

12345678910111213141516171819202122232425262728293031
  1. #include "cbo_simple.h"
  2. #include <yql/essentials/utils/yql_panic.h>
  3. #include <yql/essentials/parser/pg_wrapper/interface/optimizer.h>
  4. namespace NYql {
  5. namespace {
  6. class TSimpleOptimizerFactory : public IOptimizerFactory {
  7. public:
  8. virtual IOptimizerNew::TPtr MakeJoinCostBasedOptimizerNative(IProviderContext& pctx, TExprContext& ctx, const TNativeSettings& settings) const override {
  9. Y_UNUSED(pctx);
  10. Y_UNUSED(ctx);
  11. Y_UNUSED(settings);
  12. YQL_ENSURE(false, "Native CBO is not supported here");
  13. Y_UNREACHABLE();
  14. }
  15. virtual IOptimizerNew::TPtr MakeJoinCostBasedOptimizerPG(IProviderContext& pctx, TExprContext& ctx, const TPGSettings& settings) const override {
  16. return IOptimizerNew::TPtr(MakePgOptimizerNew(pctx, ctx, settings.Logger));
  17. }
  18. };
  19. }
  20. IOptimizerFactory::TPtr MakeSimpleCBOOptimizerFactory() {
  21. return std::make_shared<TSimpleOptimizerFactory>();
  22. }
  23. } // namespace NYql