Skip to content

Commit cb7aa29

Browse files
committed
Reuse blocks for dictionaries
1 parent fa66dd7 commit cb7aa29

File tree

1 file changed

+9
-11
lines changed

1 file changed

+9
-11
lines changed

core/trino-main/src/main/java/io/trino/operator/FlatGroupByHash.java

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -403,11 +403,10 @@ public AddDictionaryPageWork(Block[] blocks)
403403
{
404404
verify(canProcessDictionary(blocks), "invalid call to addDictionaryPage");
405405
this.dictionaryBlock = (DictionaryBlock) blocks[0];
406-
407-
this.dictionaries = Arrays.stream(blocks)
408-
.map(block -> (DictionaryBlock) block)
409-
.map(DictionaryBlock::getDictionary)
410-
.toArray(Block[]::new);
406+
this.dictionaries = blocks;
407+
for (int i = 0; i < dictionaries.length; i++) {
408+
dictionaries[i] = ((DictionaryBlock) dictionaries[i]).getDictionary();
409+
}
411410
updateDictionaryLookBack(dictionaries[0]);
412411
}
413412

@@ -630,13 +629,12 @@ public GetDictionaryGroupIdsWork(Block[] blocks)
630629
verify(canProcessDictionary(blocks), "invalid call to processDictionary");
631630

632631
this.dictionaryBlock = (DictionaryBlock) blocks[0];
633-
this.groupIds = new int[dictionaryBlock.getPositionCount()];
634-
635-
this.dictionaries = Arrays.stream(blocks)
636-
.map(block -> (DictionaryBlock) block)
637-
.map(DictionaryBlock::getDictionary)
638-
.toArray(Block[]::new);
632+
this.dictionaries = blocks;
633+
for (int i = 0; i < dictionaries.length; i++) {
634+
dictionaries[i] = ((DictionaryBlock) dictionaries[i]).getDictionary();
635+
}
639636
updateDictionaryLookBack(dictionaries[0]);
637+
this.groupIds = new int[dictionaryBlock.getPositionCount()];
640638
}
641639

642640
@Override

0 commit comments

Comments
 (0)