Skip to content

Commit 331c965

Browse files
authored
Fix skiff usage in dq (#7864)
1 parent ba138ae commit 331c965

File tree

3 files changed

+17
-8
lines changed

3 files changed

+17
-8
lines changed

ydb/library/yql/providers/dq/provider/exec/yql_dq_exectransformer.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -421,7 +421,7 @@ struct TDqsFinalPipelineConfigurator : public IPipelineConfigurator {
421421

422422
class TSimpleSkiffConverter : public ISkiffConverter {
423423
public:
424-
TString ConvertNodeToSkiff(const TDqStatePtr /*state*/, const IDataProvider::TFillSettings& /*fillSettings*/, const NYT::TNode& /*rowSpec*/, const NYT::TNode& /*item*/) override {
424+
TString ConvertNodeToSkiff(const TDqStatePtr /*state*/, const IDataProvider::TFillSettings& /*fillSettings*/, const NYT::TNode& /*rowSpec*/, const NYT::TNode& /*item*/, const TVector<TString>& /*columns*/) override {
425425
Y_ABORT("not implemented");
426426
}
427427

@@ -1137,7 +1137,7 @@ class TDqExecTransformer: public TExecTransformerBase, TCounters
11371137
break;
11381138
}
11391139
case IDataProvider::EResultFormat::Skiff: {
1140-
writer.OnStringScalar(skiffConverter->ConvertNodeToSkiff(state, fillSettings, rowSpec, item));
1140+
writer.OnStringScalar(skiffConverter->ConvertNodeToSkiff(state, fillSettings, rowSpec, item, columns));
11411141
break;
11421142
}
11431143
default: {
@@ -1179,7 +1179,7 @@ class TDqExecTransformer: public TExecTransformerBase, TCounters
11791179
break;
11801180
}
11811181
case IDataProvider::EResultFormat::Skiff: {
1182-
writer.OnStringScalar(skiffConverter->ConvertNodeToSkiff(state, fillSettings, rowSpec, item));
1182+
writer.OnStringScalar(skiffConverter->ConvertNodeToSkiff(state, fillSettings, rowSpec, item, columns));
11831183
break;
11841184
}
11851185
default: {
@@ -1588,7 +1588,7 @@ class TDqExecTransformer: public TExecTransformerBase, TCounters
15881588
break;
15891589
}
15901590
case IDataProvider::EResultFormat::Skiff: {
1591-
writer.OnStringScalar(skiffConverter->ConvertNodeToSkiff(state, fillSettings, rowSpec, item));
1591+
writer.OnStringScalar(skiffConverter->ConvertNodeToSkiff(state, fillSettings, rowSpec, item, columns));
15921592
break;
15931593
}
15941594
default: {
@@ -1615,7 +1615,7 @@ class TDqExecTransformer: public TExecTransformerBase, TCounters
16151615
break;
16161616
}
16171617
case IDataProvider::EResultFormat::Skiff: {
1618-
writer.OnStringScalar(skiffConverter->ConvertNodeToSkiff(state, fillSettings, rowSpec, item));
1618+
writer.OnStringScalar(skiffConverter->ConvertNodeToSkiff(state, fillSettings, rowSpec, item, columns));
16191619
break;
16201620
}
16211621
default: {

ydb/library/yql/providers/dq/provider/exec/yql_dq_exectransformer.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,11 @@ namespace NYql {
1717
NYT::TNode RowSpec;
1818
};
1919

20-
virtual TString ConvertNodeToSkiff(const TDqStatePtr state, const IDataProvider::TFillSettings& fillSettings, const NYT::TNode& rowSpec, const NYT::TNode& item) = 0;
20+
virtual TString ConvertNodeToSkiff(
21+
const TDqStatePtr state,
22+
const IDataProvider::TFillSettings& fillSettings,
23+
const NYT::TNode& rowSpec, const NYT::TNode& item,
24+
const TVector<TString>& columns) = 0;
2125
virtual TYtType ParseYTType(const TExprNode& node, TExprContext& ctx, const TMaybe<NYql::TColumnOrder>& columns) = 0;
2226
};
2327
using ISkiffConverterPtr = TIntrusivePtr<ISkiffConverter>;

ydb/library/yql/yt/native/plugin.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,15 +146,20 @@ class TSkiffConverter
146146
: public ISkiffConverter
147147
{
148148
public:
149-
TString ConvertNodeToSkiff(const TDqStatePtr state, const IDataProvider::TFillSettings& fillSettings, const NYT::TNode& rowSpec, const NYT::TNode& item) override
149+
TString ConvertNodeToSkiff(
150+
const TDqStatePtr state,
151+
const IDataProvider::TFillSettings& fillSettings,
152+
const NYT::TNode& rowSpec,
153+
const NYT::TNode& item,
154+
const TVector<TString>& columns) override
150155
{
151156
TMemoryUsageInfo memInfo("DqResOrPull");
152157
TScopedAlloc alloc(__LOCATION__, NKikimr::TAlignedPagePoolCounters(), state->FunctionRegistry->SupportsSizedAllocators());
153158
THolderFactory holderFactory(alloc.Ref(), memInfo, state->FunctionRegistry);
154159
TTypeEnvironment env(alloc);
155160
NYql::NCommon::TCodecContext codecCtx(env, *state->FunctionRegistry, &holderFactory);
156161

157-
auto skiffBuilder = MakeHolder<TSkiffExecuteResOrPull>(fillSettings.RowsLimitPerWrite, fillSettings.AllResultsBytesLimit, codecCtx, holderFactory, rowSpec, state->TypeCtx->OptLLVM.GetOrElse("OFF"));
162+
auto skiffBuilder = MakeHolder<TSkiffExecuteResOrPull>(fillSettings.RowsLimitPerWrite, fillSettings.AllResultsBytesLimit, codecCtx, holderFactory, rowSpec, state->TypeCtx->OptLLVM.GetOrElse("OFF"), columns);
158163
if (item.IsList()) {
159164
skiffBuilder->SetListResult();
160165
for (auto& node : item.AsList()) {

0 commit comments

Comments
 (0)