aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorudovichenko-r <udovichenko-r@yandex-team.ru>2022-06-01 14:34:16 +0300
committerudovichenko-r <udovichenko-r@yandex-team.ru>2022-06-01 14:34:16 +0300
commit9a059d543fb7bd8cfefa1d74be9436634539f9d3 (patch)
tree6d41ec8852dc19ab972fb7f37d14e62176628e74
parentc1a5a70d103a7f61424a2e38f329e7a0ef64ca21 (diff)
downloadydb-9a059d543fb7bd8cfefa1d74be9436634539f9d3.tar.gz
[yql] Cleanup unused transformers
YQL-12393 ref:c37007ab79220ef2b4de00612e51e453801c66da
-rw-r--r--ydb/library/yql/providers/dq/opt/dqs_opt.cpp117
-rw-r--r--ydb/library/yql/providers/dq/opt/dqs_opt.h3
-rw-r--r--ydb/library/yql/providers/dq/opt/physical_optimize.cpp6
3 files changed, 4 insertions, 122 deletions
diff --git a/ydb/library/yql/providers/dq/opt/dqs_opt.cpp b/ydb/library/yql/providers/dq/opt/dqs_opt.cpp
index edfcc4232c..850d24944f 100644
--- a/ydb/library/yql/providers/dq/opt/dqs_opt.cpp
+++ b/ydb/library/yql/providers/dq/opt/dqs_opt.cpp
@@ -46,72 +46,6 @@ namespace NYql::NDqs {
using TStatus = IGraphTransformer::TStatus;
- THolder<IGraphTransformer> CreateDqsWrapListsOptTransformer() {
- return CreateFunctorTransformer(
- [&](const TExprNode::TPtr& input, TExprNode::TPtr& output, TExprContext& ctx) -> TStatus {
- YQL_ENSURE(input->GetTypeAnn() != nullptr);
- YQL_ENSURE(input->GetTypeAnn()->GetKind() == ETypeAnnotationKind::List);
- if (TExprBase(input).Maybe<TDqCnUnionAll>()) {
- return TStatus(TStatus::ELevel::Ok, false);
- }
-
- output = Build<TDqCnUnionAll>(ctx, input->Pos()) // clang-format off
- .Output()
- .Stage<TDqStage>()
- .Inputs()
- .Build()
- .Program()
- .Args({})
- .Body<TCoIterator>()
- .List(input)
- .Build()
- .Build()
- .Settings(TDqStageSettings().BuildNode(ctx, input->Pos()))
- .Build()
- .Index()
- .Build("0")
- .Build()
- .Done().Ptr(); // clang-format on
-
- return TStatus(TStatus::ELevel::Repeat, true);
- });
- }
-
- THolder<NYql::IGraphTransformer> CreateDqsBuildTransformer() {
- return CreateFunctorTransformer([](const TExprNode::TPtr& input, TExprNode::TPtr& output, TExprContext& ctx) -> TStatus {
- TExprBase node(input);
- if (node.Maybe<TDqCnResult>()) {
- return TStatus::Ok;
- }
-
- if (!node.Maybe<TDqCnUnionAll>()) {
- ctx.AddError(TIssue(input->Pos(ctx), "Last connection must be union all"));
- output = input;
- return TStatus::Error;
- }
-
- output = Build<TDqCnResult>(ctx, input->Pos()) // clang-format off
- .Output()
- .Stage<TDqStage>()
- .Inputs()
- .Add(node.Cast<TDqCnUnionAll>())
- .Build()
- .Program()
- .Args({"row"})
- .Body("row")
- .Build()
- .Settings(TDqStageSettings().BuildNode(ctx, node.Pos()))
- .Build()
- .Index()
- .Build("0")
- .Build()
- .ColumnHints() // TODO: set column hints
- .Build()
- .Done().Ptr(); // clang-format on
- return TStatus(IGraphTransformer::TStatus::Repeat, true);
- });
- }
-
THolder<IGraphTransformer> CreateDqsRewritePhyCallablesTransformer() {
return CreateFunctorTransformer([](const TExprNode::TPtr& input, TExprNode::TPtr& output, TExprContext& ctx) {
TOptimizeExprSettings optSettings{nullptr};
@@ -199,57 +133,6 @@ namespace NYql::NDqs {
});
}
- namespace NPeephole {
-
- class TDqsPeepholeTransformer: public TSyncTransformerBase {
- public:
- TDqsPeepholeTransformer(THolder<IGraphTransformer>&& typeAnnTransformer,
- TTypeAnnotationContext& typesCtx)
- : TypeAnnTransformer(std::move(typeAnnTransformer))
- , TypesCtx(typesCtx)
- {
- }
-
- TStatus DoTransform(TExprNode::TPtr inputExpr, TExprNode::TPtr& outputExpr, TExprContext& ctx) final {
- if (Optimized) {
- outputExpr = inputExpr;
- return TStatus::Ok;
- }
-
- auto transformer = CreateDqsRewritePhyCallablesTransformer();
- auto status = InstantTransform(*transformer, inputExpr, ctx);
- if (status.Level != TStatus::Ok) {
- ctx.AddError(TIssue(ctx.GetPosition(inputExpr->Pos()), TString("Peephole optimization failed for Dq stage")));
- return TStatus::Error;
- }
-
- bool hasNonDeterministicFunctions = false;
- status = PeepHoleOptimizeNode<true>(inputExpr, inputExpr, ctx, TypesCtx, TypeAnnTransformer.Get(), hasNonDeterministicFunctions);
- if (status.Level != TStatus::Ok) {
- ctx.AddError(TIssue(ctx.GetPosition(inputExpr->Pos()), TString("Peephole optimization failed for Dq stage")));
- return TStatus::Error;
- }
-
- outputExpr = inputExpr;
- Optimized = true;
- return TStatus::Ok;
- }
-
- void Rewind() final {
- Optimized = false;
- }
-
- private:
- THolder<IGraphTransformer> TypeAnnTransformer;
- TTypeAnnotationContext& TypesCtx;
- bool Optimized = false;
- };
- }
-
- THolder<IGraphTransformer> CreateDqsPeepholeTransformer(THolder<IGraphTransformer>&& typeAnnTransformer, TTypeAnnotationContext& typesCtx) {
- return MakeHolder<NPeephole::TDqsPeepholeTransformer>(std::move(typeAnnTransformer), typesCtx);
- }
-
THolder<IGraphTransformer> CreateDqsFinalizingOptTransformer() {
return CreateFunctorTransformer(
[](const TExprNode::TPtr& input, TExprNode::TPtr& output, TExprContext& ctx) {
diff --git a/ydb/library/yql/providers/dq/opt/dqs_opt.h b/ydb/library/yql/providers/dq/opt/dqs_opt.h
index 25da467f41..e2a7a31e35 100644
--- a/ydb/library/yql/providers/dq/opt/dqs_opt.h
+++ b/ydb/library/yql/providers/dq/opt/dqs_opt.h
@@ -13,11 +13,8 @@ namespace NYql {
namespace NYql::NDqs {
class TDatabaseManager;
- THolder<IGraphTransformer> CreateDqsWrapListsOptTransformer();
THolder<IGraphTransformer> CreateDqsFinalizingOptTransformer();
- THolder<IGraphTransformer> CreateDqsBuildTransformer();
THolder<IGraphTransformer> CreateDqsRewritePhyCallablesTransformer();
THolder<IGraphTransformer> CreateDqsReplacePrecomputesTransformer(TTypeAnnotationContext* typesCtx, const NKikimr::NMiniKQL::IFunctionRegistry* funcRegistry);
- THolder<IGraphTransformer> CreateDqsPeepholeTransformer(THolder<IGraphTransformer>&& typeAnnTransformer, TTypeAnnotationContext& typesCtx);
} // namespace NYql::NDqs
diff --git a/ydb/library/yql/providers/dq/opt/physical_optimize.cpp b/ydb/library/yql/providers/dq/opt/physical_optimize.cpp
index 2464b27b87..2a14933488 100644
--- a/ydb/library/yql/providers/dq/opt/physical_optimize.cpp
+++ b/ydb/library/yql/providers/dq/opt/physical_optimize.cpp
@@ -21,6 +21,8 @@ public:
: TOptimizeTransformerBase(typeCtx, NLog::EComponent::ProviderDq, {})
, Config(config)
{
+ const bool enablePrecompute = Config->_EnablePrecompute.Get().GetOrElse(false);
+
#define HNDL(name) "DqsPhy-"#name, Hndl(&TDqsPhysicalOptProposalTransformer::name)
AddHandler(0, &TDqSourceWrap::Match, HNDL(BuildStageWithSourceWrap));
AddHandler(0, &TDqReadWrap::Match, HNDL(BuildStageWithReadWrap));
@@ -42,7 +44,7 @@ public:
AddHandler(0, &TCoAssumeSorted::Match, HNDL(BuildSortStage<false>));
AddHandler(0, &TCoOrderedLMap::Match, HNDL(PushOrderedLMapToStage<false>));
AddHandler(0, &TCoLMap::Match, HNDL(PushLMapToStage<false>));
- if (Config->_EnablePrecompute.Get().GetOrElse(false)) {
+ if (enablePrecompute) {
AddHandler(0, &TCoHasItems::Match, HNDL(BuildHasItems));
AddHandler(0, &TCoToOptional::Match, HNDL(BuildScalarPrecompute<false>));
AddHandler(0, &TCoHead::Match, HNDL(BuildScalarPrecompute<false>));
@@ -62,7 +64,7 @@ public:
AddHandler(1, &TCoAssumeSorted::Match, HNDL(BuildSortStage<true>));
AddHandler(1, &TCoOrderedLMap::Match, HNDL(PushOrderedLMapToStage<true>));
AddHandler(1, &TCoLMap::Match, HNDL(PushLMapToStage<true>));
- if (Config->_EnablePrecompute.Get().GetOrElse(false)) {
+ if (enablePrecompute) {
AddHandler(0, &TCoToOptional::Match, HNDL(BuildScalarPrecompute<true>));
AddHandler(0, &TCoHead::Match, HNDL(BuildScalarPrecompute<true>));
}