Skip to content

Commit 8789983

Browse files
committed
generic provider: tune for KQP
1 parent 8deda63 commit 8789983

File tree

3 files changed

+26
-7
lines changed

3 files changed

+26
-7
lines changed

ydb/library/yql/providers/generic/provider/yql_generic_datasource.cpp

+19
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,25 @@ namespace NYql {
7373
return node;
7474
}
7575

76+
bool CanPullResult(const TExprNode& node, TSyncMap& syncList, bool& canRef) override {
77+
Y_UNUSED(syncList);
78+
canRef = false;
79+
if (node.IsCallable(TCoRight::CallableName())) {
80+
const auto input = node.Child(0);
81+
if (input->IsCallable(TGenReadTable::CallableName())) {
82+
return true;
83+
}
84+
}
85+
return false;
86+
}
87+
88+
bool CanExecute(const TExprNode& node) override {
89+
if (node.IsCallable(TGenReadTable::CallableName())) {
90+
return true;
91+
}
92+
return false;
93+
}
94+
7695
const THashMap<TString, TString>* GetClusterTokens() override {
7796
return &State_->Configuration->Tokens;
7897
}

ydb/library/yql/providers/generic/provider/yql_generic_logical_opt.cpp

-7
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,12 @@ namespace NYql {
2323
, State_(state)
2424
{
2525
#define HNDL(name) "LogicalOptimizer-" #name, Hndl(&TGenericLogicalOptProposalTransformer::name)
26-
AddHandler(0, &TCoLeft::Match, HNDL(TrimReadWorld));
2726
AddHandler(0, &TCoExtractMembers::Match, HNDL(ExtractMembers));
2827
AddHandler(0, &TCoExtractMembers::Match, HNDL(ExtractMembersOverDqWrap));
2928
AddHandler(0, &TCoExtractMembers::Match, HNDL(ExtractMembersOverDqSourceWrap));
3029
#undef HNDL
3130
}
3231

33-
TMaybeNode<TExprBase> TrimReadWorld(TExprBase node, TExprContext& ctx) const {
34-
if (const auto maybeRead = node.Cast<TCoLeft>().Input().Maybe<TGenReadTable>())
35-
return TExprBase(ctx.NewWorld(node.Pos()));
36-
return node;
37-
}
38-
3932
TMaybeNode<TExprBase> ExtractMembers(TExprBase node, TExprContext& ctx) const {
4033
const auto extract = node.Cast<TCoExtractMembers>();
4134
const auto input = extract.Input();

ydb/library/yql/providers/generic/provider/yql_generic_physical_opt.cpp

+7
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,17 @@ namespace NYql {
2323
, State_(state)
2424
{
2525
#define HNDL(name) "PhysicalOptimizer-" #name, Hndl(&TGenericPhysicalOptProposalTransformer::name)
26+
AddHandler(0, &TCoLeft::Match, HNDL(TrimReadWorld));
2627
AddHandler(0, &TCoNarrowMap::Match, HNDL(ReadZeroColumns));
2728
#undef HNDL
2829
}
2930

31+
TMaybeNode<TExprBase> TrimReadWorld(TExprBase node, TExprContext& ctx) const {
32+
if (const auto maybeRead = node.Cast<TCoLeft>().Input().Maybe<TGenReadTable>())
33+
return TExprBase(ctx.NewWorld(node.Pos()));
34+
return node;
35+
}
36+
3037
TMaybeNode<TExprBase> ReadZeroColumns(TExprBase node, TExprContext& ctx) const {
3138
const auto& narrow = node.Maybe<TCoNarrowMap>();
3239
if (const auto& wide = narrow.Cast().Input().Maybe<TDqReadWideWrap>()) {

0 commit comments

Comments
 (0)