Skip to content

Commit 198242d

Browse files
authored
Correct Rows count in MultiType Input Channels (#11859)
1 parent fb228ee commit 198242d

File tree

1 file changed

+27
-12
lines changed

1 file changed

+27
-12
lines changed

ydb/library/yql/dq/runtime/dq_input_impl.h

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -59,23 +59,38 @@ class TDqInputImpl : public IInputInterface {
5959

6060
TInputChannelFormat GetFormat() {
6161
if (Width) {
62-
if (InputType->IsStruct()) {
63-
auto structType = static_cast<NKikimr::NMiniKQL::TStructType*>(InputType);
64-
for (ui32 i = 0; i < structType->GetMembersCount(); i++) {
65-
if (structType->GetMemberType(i)->IsBlock()) {
66-
return BLOCK_WIDE;
62+
switch (InputType->GetKind()) {
63+
case NKikimr::NMiniKQL::TTypeBase::EKind::Struct: {
64+
auto structType = static_cast<NKikimr::NMiniKQL::TStructType*>(InputType);
65+
for (ui32 i = 0; i < structType->GetMembersCount(); i++) {
66+
if (structType->GetMemberType(i)->IsBlock()) {
67+
return BLOCK_WIDE;
68+
}
6769
}
70+
break;
6871
}
69-
} else if (InputType->IsTuple()) {
70-
auto tupleType= static_cast<NKikimr::NMiniKQL::TTupleType*>(InputType);
71-
for (ui32 i = 0; i < tupleType->GetElementsCount(); i++) {
72-
if (tupleType->GetElementType(i)->IsBlock()) {
73-
return BLOCK_WIDE;
72+
case NKikimr::NMiniKQL::TTypeBase::EKind::Tuple: {
73+
auto tupleType = static_cast<NKikimr::NMiniKQL::TTupleType*>(InputType);
74+
for (ui32 i = 0; i < tupleType->GetElementsCount(); i++) {
75+
if (tupleType->GetElementType(i)->IsBlock()) {
76+
return BLOCK_WIDE;
77+
}
7478
}
79+
break;
7580
}
76-
} else {
77-
return SIMPLE_WIDE;
81+
case NKikimr::NMiniKQL::TTypeBase::EKind::Multi: {
82+
auto multiType = static_cast<NKikimr::NMiniKQL::TMultiType*>(InputType);
83+
for (ui32 i = 0; i < multiType->GetElementsCount(); i++) {
84+
if (multiType->GetElementType(i)->IsBlock()) {
85+
return BLOCK_WIDE;
86+
}
87+
}
88+
break;
89+
}
90+
default:
91+
break;
7892
}
93+
return SIMPLE_WIDE;
7994
}
8095

8196
if (InputType->IsStruct()) {

0 commit comments

Comments
 (0)