Skip to content

Commit 5a3a43d

Browse files
committed
Fix test
1 parent 113d914 commit 5a3a43d

File tree

1 file changed

+7
-1
lines changed
  • modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/rel

1 file changed

+7
-1
lines changed

modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/rel/HashAggregateNode.java

+7-1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import java.util.List;
2626
import java.util.Map;
2727
import java.util.function.BiFunction;
28+
import java.util.function.Function;
2829
import java.util.function.Supplier;
2930
import org.apache.calcite.rel.type.RelDataType;
3031
import org.apache.calcite.util.ImmutableBitSet;
@@ -251,6 +252,9 @@ private class Grouping {
251252
/** */
252253
private final BiFunction<GroupKey, List<AccumulatorWrapper<Row>>, List<AccumulatorWrapper<Row>>> getOrCreateGroup;
253254

255+
/** */
256+
private final Function<GroupKey, List<AccumulatorWrapper<Row>>> createGroup;
257+
254258
/** */
255259
private Grouping(byte grpId, ImmutableBitSet grpFields) {
256260
this.grpId = grpId;
@@ -259,6 +263,8 @@ private Grouping(byte grpId, ImmutableBitSet grpFields) {
259263
grpKeyBld = GroupKey.builder(grpFields.cardinality());
260264
handler = context().rowHandler();
261265

266+
createGroup = (k) -> create();
267+
262268
getOrCreateGroup = (k, v) -> {
263269
if (v == null) {
264270
grpKeyBld = GroupKey.builder(grpFields.cardinality());
@@ -332,7 +338,7 @@ private void addOnReducer(Row row) {
332338

333339
GroupKey grpKey = (GroupKey)handler.get(1, row);
334340

335-
List<AccumulatorWrapper<Row>> wrappers = groups.get(grpKey);
341+
List<AccumulatorWrapper<Row>> wrappers = groups.computeIfAbsent(grpKey, createGroup);
336342
Accumulator<Row>[] accums = hasAccumulators() ? (Accumulator<Row>[])handler.get(2, row) : null;
337343

338344
for (int i = 0; i < F.size(wrappers); i++) {

0 commit comments

Comments
 (0)