@@ -346,9 +346,6 @@ class TDqOutputHashPartitionConsumerBlock : public IDqOutputConsumer {
346
346
blockTypes.emplace_back (blockType->GetItemType ());
347
347
}
348
348
}
349
- ui64 maxBlockLen = CalcMaxBlockLength (blockTypes.begin (), blockTypes.end (), helper);
350
- YQL_ENSURE (maxBlockLen > 0 );
351
- MakeBuilders (maxBlockLen);
352
349
353
350
TBlockTypeHelper blockHelper;
354
351
for (auto & column : KeyColumns_) {
@@ -391,22 +388,14 @@ class TDqOutputHashPartitionConsumerBlock : public IDqOutputConsumer {
391
388
outputBlockIndexes[GetHashPartitionIndex (datums.data (), i)].push_back (i);
392
389
}
393
390
394
- ui64 maxLen = 0 ;
395
- for (auto & indexes : outputBlockIndexes) {
396
- maxLen = std::max (maxLen, indexes.size ());
397
- }
398
-
399
- if (maxLen > MaxOutputBlockLen_) {
400
- MakeBuilders (maxLen);
401
- }
402
-
403
391
TVector<std::unique_ptr<TArgsDechunker>> outputData;
404
392
for (size_t i = 0 ; i < Outputs_.size (); ++i) {
405
393
ui64 outputBlockLen = outputBlockIndexes[i].size ();
406
394
if (!outputBlockLen) {
407
395
outputData.emplace_back ();
408
396
continue ;
409
397
}
398
+ MakeBuilders (outputBlockLen);
410
399
const ui64* indexes = outputBlockIndexes[i].data ();
411
400
412
401
std::vector<arrow::Datum> output;
@@ -419,7 +408,7 @@ class TDqOutputHashPartitionConsumerBlock : public IDqOutputConsumer {
419
408
dataItem.Data = src->array ().get ();
420
409
dataItem.StartOffset = 0 ;
421
410
Builders_[j]->AddMany (&dataItem, 1 , indexes, outputBlockLen);
422
- output.emplace_back (Builders_[j]->Build (false ));
411
+ output.emplace_back (Builders_[j]->Build (true ));
423
412
}
424
413
}
425
414
outputData.emplace_back (std::make_unique<TArgsDechunker>(std::move (output)));
@@ -528,7 +517,6 @@ class TDqOutputHashPartitionConsumerBlock : public IDqOutputConsumer {
528
517
Builders_.emplace_back ();
529
518
}
530
519
}
531
- MaxOutputBlockLen_ = maxBlockLen;
532
520
}
533
521
534
522
private:
@@ -546,7 +534,6 @@ class TDqOutputHashPartitionConsumerBlock : public IDqOutputConsumer {
546
534
TVector<std::unique_ptr<IBlockReader>> Readers_;
547
535
TVector<std::unique_ptr<IArrayBuilder>> Builders_;
548
536
549
- ui64 MaxOutputBlockLen_ = 0 ;
550
537
mutable bool IsWaitingFlag_ = false ;
551
538
};
552
539
0 commit comments