From ba2f5ea5c4332cc728d33f7129317332e4d086c0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Iv=C3=A1n=20Cea=20Fontenla?=
Date: Wed, 30 Apr 2025 13:01:55 +0200
Subject: [PATCH 01/11] Specialize block parameters on AddInput
(cherry picked from commit a5855c16640af36a4eb0b5227e68d7eb32299444)
---
.../gen/GroupingAggregatorImplementer.java | 29 +--
.../org/elasticsearch/compute/gen/Types.java | 3 +
.../compute/data/BooleanArrayBlock.java | 2 +-
.../compute/data/BytesRefArrayBlock.java | 2 +-
.../compute/data/DoubleArrayBlock.java | 2 +-
.../compute/data/FloatArrayBlock.java | 2 +-
.../compute/data/IntArrayBlock.java | 2 +-
.../compute/data/LongArrayBlock.java | 2 +-
...inctBooleanGroupingAggregatorFunction.java | 162 ++++++++++++++--
...nctBytesRefGroupingAggregatorFunction.java | 168 +++++++++++++++--
...tinctDoubleGroupingAggregatorFunction.java | 162 ++++++++++++++--
...stinctFloatGroupingAggregatorFunction.java | 162 ++++++++++++++--
...DistinctIntGroupingAggregatorFunction.java | 162 ++++++++++++++--
...istinctLongGroupingAggregatorFunction.java | 162 ++++++++++++++--
...rTimeDoubleGroupingAggregatorFunction.java | 173 ++++++++++++++++--
...erTimeFloatGroupingAggregatorFunction.java | 173 ++++++++++++++++--
...OverTimeIntGroupingAggregatorFunction.java | 173 ++++++++++++++++--
...verTimeLongGroupingAggregatorFunction.java | 173 ++++++++++++++++--
.../MaxBooleanGroupingAggregatorFunction.java | 162 ++++++++++++++--
...MaxBytesRefGroupingAggregatorFunction.java | 168 +++++++++++++++--
.../MaxDoubleGroupingAggregatorFunction.java | 162 ++++++++++++++--
.../MaxFloatGroupingAggregatorFunction.java | 162 ++++++++++++++--
.../MaxIntGroupingAggregatorFunction.java | 162 ++++++++++++++--
.../MaxIpGroupingAggregatorFunction.java | 168 +++++++++++++++--
.../MaxLongGroupingAggregatorFunction.java | 162 ++++++++++++++--
...ationDoubleGroupingAggregatorFunction.java | 162 ++++++++++++++--
...iationFloatGroupingAggregatorFunction.java | 162 ++++++++++++++--
...eviationIntGroupingAggregatorFunction.java | 162 ++++++++++++++--
...viationLongGroupingAggregatorFunction.java | 162 ++++++++++++++--
.../MinBooleanGroupingAggregatorFunction.java | 162 ++++++++++++++--
...MinBytesRefGroupingAggregatorFunction.java | 168 +++++++++++++++--
.../MinDoubleGroupingAggregatorFunction.java | 162 ++++++++++++++--
.../MinFloatGroupingAggregatorFunction.java | 162 ++++++++++++++--
.../MinIntGroupingAggregatorFunction.java | 162 ++++++++++++++--
.../MinIpGroupingAggregatorFunction.java | 168 +++++++++++++++--
.../MinLongGroupingAggregatorFunction.java | 162 ++++++++++++++--
...ntileDoubleGroupingAggregatorFunction.java | 162 ++++++++++++++--
...entileFloatGroupingAggregatorFunction.java | 162 ++++++++++++++--
...rcentileIntGroupingAggregatorFunction.java | 162 ++++++++++++++--
...centileLongGroupingAggregatorFunction.java | 162 ++++++++++++++--
.../RateDoubleGroupingAggregatorFunction.java | 173 ++++++++++++++++--
.../RateFloatGroupingAggregatorFunction.java | 173 ++++++++++++++++--
.../RateIntGroupingAggregatorFunction.java | 173 ++++++++++++++++--
.../RateLongGroupingAggregatorFunction.java | 173 ++++++++++++++++--
...tdDevDoubleGroupingAggregatorFunction.java | 162 ++++++++++++++--
...StdDevFloatGroupingAggregatorFunction.java | 162 ++++++++++++++--
.../StdDevIntGroupingAggregatorFunction.java | 162 ++++++++++++++--
.../StdDevLongGroupingAggregatorFunction.java | 162 ++++++++++++++--
.../SumDoubleGroupingAggregatorFunction.java | 162 ++++++++++++++--
.../SumFloatGroupingAggregatorFunction.java | 162 ++++++++++++++--
.../SumIntGroupingAggregatorFunction.java | 162 ++++++++++++++--
.../SumLongGroupingAggregatorFunction.java | 162 ++++++++++++++--
.../TopBooleanGroupingAggregatorFunction.java | 162 ++++++++++++++--
...TopBytesRefGroupingAggregatorFunction.java | 168 +++++++++++++++--
.../TopDoubleGroupingAggregatorFunction.java | 162 ++++++++++++++--
.../TopFloatGroupingAggregatorFunction.java | 162 ++++++++++++++--
.../TopIntGroupingAggregatorFunction.java | 162 ++++++++++++++--
.../TopIpGroupingAggregatorFunction.java | 168 +++++++++++++++--
.../TopLongGroupingAggregatorFunction.java | 162 ++++++++++++++--
...luesBooleanGroupingAggregatorFunction.java | 162 ++++++++++++++--
...uesBytesRefGroupingAggregatorFunction.java | 168 +++++++++++++++--
...aluesDoubleGroupingAggregatorFunction.java | 162 ++++++++++++++--
...ValuesFloatGroupingAggregatorFunction.java | 162 ++++++++++++++--
.../ValuesIntGroupingAggregatorFunction.java | 162 ++++++++++++++--
.../ValuesLongGroupingAggregatorFunction.java | 162 ++++++++++++++--
...ntDocValuesGroupingAggregatorFunction.java | 162 ++++++++++++++--
...ourceValuesGroupingAggregatorFunction.java | 168 +++++++++++++++--
...ntDocValuesGroupingAggregatorFunction.java | 162 ++++++++++++++--
...ourceValuesGroupingAggregatorFunction.java | 168 +++++++++++++++--
...ntDocValuesGroupingAggregatorFunction.java | 162 ++++++++++++++--
...ourceValuesGroupingAggregatorFunction.java | 168 +++++++++++++++--
...peDocValuesGroupingAggregatorFunction.java | 138 ++++++++++++--
...ourceValuesGroupingAggregatorFunction.java | 168 +++++++++++++++--
...ntDocValuesGroupingAggregatorFunction.java | 162 ++++++++++++++--
...ourceValuesGroupingAggregatorFunction.java | 168 +++++++++++++++--
...peDocValuesGroupingAggregatorFunction.java | 138 ++++++++++++--
...ourceValuesGroupingAggregatorFunction.java | 168 +++++++++++++++--
.../GroupingAggregatorFunction.java | 33 ++++
.../compute/data/X-ArrayBlock.java.st | 2 +-
79 files changed, 10525 insertions(+), 856 deletions(-)
diff --git a/x-pack/plugin/esql/compute/gen/src/main/java/org/elasticsearch/compute/gen/GroupingAggregatorImplementer.java b/x-pack/plugin/esql/compute/gen/src/main/java/org/elasticsearch/compute/gen/GroupingAggregatorImplementer.java
index f42138c3eceb6..41947a39aed44 100644
--- a/x-pack/plugin/esql/compute/gen/src/main/java/org/elasticsearch/compute/gen/GroupingAggregatorImplementer.java
+++ b/x-pack/plugin/esql/compute/gen/src/main/java/org/elasticsearch/compute/gen/GroupingAggregatorImplementer.java
@@ -54,8 +54,11 @@
import static org.elasticsearch.compute.gen.Types.GROUPING_AGGREGATOR_FUNCTION;
import static org.elasticsearch.compute.gen.Types.GROUPING_AGGREGATOR_FUNCTION_ADD_INPUT;
import static org.elasticsearch.compute.gen.Types.INTERMEDIATE_STATE_DESC;
+import static org.elasticsearch.compute.gen.Types.INT_ARRAY_BLOCK;
+import static org.elasticsearch.compute.gen.Types.INT_BIG_ARRAY_BLOCK;
import static org.elasticsearch.compute.gen.Types.INT_BLOCK;
import static org.elasticsearch.compute.gen.Types.INT_VECTOR;
+import static org.elasticsearch.compute.gen.Types.INT_VECTOR_BLOCK;
import static org.elasticsearch.compute.gen.Types.LIST_AGG_FUNC_DESC;
import static org.elasticsearch.compute.gen.Types.LIST_INTEGER;
import static org.elasticsearch.compute.gen.Types.LONG_BLOCK;
@@ -76,6 +79,9 @@
* and break-point-able as possible.
*/
public class GroupingAggregatorImplementer {
+ private static final List GROUP_IDS_CLASSES =
+ List.of(INT_BLOCK, INT_ARRAY_BLOCK, INT_VECTOR_BLOCK, INT_BIG_ARRAY_BLOCK, INT_VECTOR);
+
private final TypeElement declarationType;
private final List warnExceptions;
private final ExecutableElement init;
@@ -196,10 +202,10 @@ private TypeSpec type() {
builder.addMethod(intermediateStateDesc());
builder.addMethod(intermediateBlockCount());
builder.addMethod(prepareProcessPage());
- builder.addMethod(addRawInputLoop(INT_VECTOR, blockType(aggParam.type())));
- builder.addMethod(addRawInputLoop(INT_VECTOR, vectorType(aggParam.type())));
- builder.addMethod(addRawInputLoop(INT_BLOCK, blockType(aggParam.type())));
- builder.addMethod(addRawInputLoop(INT_BLOCK, vectorType(aggParam.type())));
+ for (ClassName groupIdClass : GROUP_IDS_CLASSES) {
+ builder.addMethod(addRawInputLoop(groupIdClass, blockType(aggParam.type())));
+ builder.addMethod(addRawInputLoop(groupIdClass, vectorType(aggParam.type())));
+ }
builder.addMethod(selectedMayContainUnseenGroups());
builder.addMethod(addIntermediateInput());
builder.addMethod(addIntermediateRowInput());
@@ -347,15 +353,12 @@ private TypeSpec addInput(Consumer addBlock) {
TypeSpec.Builder builder = TypeSpec.anonymousClassBuilder("");
builder.addSuperinterface(GROUPING_AGGREGATOR_FUNCTION_ADD_INPUT);
- MethodSpec.Builder block = MethodSpec.methodBuilder("add").addAnnotation(Override.class).addModifiers(Modifier.PUBLIC);
- block.addParameter(TypeName.INT, "positionOffset").addParameter(INT_BLOCK, "groupIds");
- addBlock.accept(block);
- builder.addMethod(block.build());
-
- MethodSpec.Builder vector = MethodSpec.methodBuilder("add").addAnnotation(Override.class).addModifiers(Modifier.PUBLIC);
- vector.addParameter(TypeName.INT, "positionOffset").addParameter(INT_VECTOR, "groupIds");
- addBlock.accept(vector);
- builder.addMethod(vector.build());
+ for (ClassName groupIdsType : GROUP_IDS_CLASSES) {
+ MethodSpec.Builder vector = MethodSpec.methodBuilder("add").addAnnotation(Override.class).addModifiers(Modifier.PUBLIC);
+ vector.addParameter(TypeName.INT, "positionOffset").addParameter(groupIdsType, "groupIds");
+ addBlock.accept(vector);
+ builder.addMethod(vector.build());
+ }
MethodSpec.Builder close = MethodSpec.methodBuilder("close").addAnnotation(Override.class).addModifiers(Modifier.PUBLIC);
builder.addMethod(close.build());
diff --git a/x-pack/plugin/esql/compute/gen/src/main/java/org/elasticsearch/compute/gen/Types.java b/x-pack/plugin/esql/compute/gen/src/main/java/org/elasticsearch/compute/gen/Types.java
index 62ecee6b5c6e9..a86e521f5a1b5 100644
--- a/x-pack/plugin/esql/compute/gen/src/main/java/org/elasticsearch/compute/gen/Types.java
+++ b/x-pack/plugin/esql/compute/gen/src/main/java/org/elasticsearch/compute/gen/Types.java
@@ -46,6 +46,9 @@ public class Types {
static final ClassName BOOLEAN_BLOCK = ClassName.get(DATA_PACKAGE, "BooleanBlock");
static final ClassName BYTES_REF_BLOCK = ClassName.get(DATA_PACKAGE, "BytesRefBlock");
static final ClassName INT_BLOCK = ClassName.get(DATA_PACKAGE, "IntBlock");
+ static final ClassName INT_VECTOR_BLOCK = ClassName.get(DATA_PACKAGE, "IntVectorBlock");
+ static final ClassName INT_ARRAY_BLOCK = ClassName.get(DATA_PACKAGE, "IntArrayBlock");
+ static final ClassName INT_BIG_ARRAY_BLOCK = ClassName.get(DATA_PACKAGE, "IntBigArrayBlock");
static final ClassName LONG_BLOCK = ClassName.get(DATA_PACKAGE, "LongBlock");
static final ClassName DOUBLE_BLOCK = ClassName.get(DATA_PACKAGE, "DoubleBlock");
static final ClassName FLOAT_BLOCK = ClassName.get(DATA_PACKAGE, "FloatBlock");
diff --git a/x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/BooleanArrayBlock.java b/x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/BooleanArrayBlock.java
index 47d386d0bd690..f9ea9952ebd1c 100644
--- a/x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/BooleanArrayBlock.java
+++ b/x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/BooleanArrayBlock.java
@@ -20,7 +20,7 @@
* Block implementation that stores values in a {@link BooleanArrayVector}.
* This class is generated. Edit {@code X-ArrayBlock.java.st} instead.
*/
-final class BooleanArrayBlock extends AbstractArrayBlock implements BooleanBlock {
+public final class BooleanArrayBlock extends AbstractArrayBlock implements BooleanBlock {
static final long BASE_RAM_BYTES_USED = RamUsageEstimator.shallowSizeOfInstance(BooleanArrayBlock.class);
diff --git a/x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/BytesRefArrayBlock.java b/x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/BytesRefArrayBlock.java
index a85b75d8fdc2a..5fddfd277111f 100644
--- a/x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/BytesRefArrayBlock.java
+++ b/x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/BytesRefArrayBlock.java
@@ -23,7 +23,7 @@
* Does not take ownership of the given {@link BytesRefArray} and does not adjust circuit breakers to account for it.
* This class is generated. Edit {@code X-ArrayBlock.java.st} instead.
*/
-final class BytesRefArrayBlock extends AbstractArrayBlock implements BytesRefBlock {
+public final class BytesRefArrayBlock extends AbstractArrayBlock implements BytesRefBlock {
static final long BASE_RAM_BYTES_USED = RamUsageEstimator.shallowSizeOfInstance(BytesRefArrayBlock.class);
diff --git a/x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/DoubleArrayBlock.java b/x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/DoubleArrayBlock.java
index 83c7b85a7ff5a..4eb5a591f6b0a 100644
--- a/x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/DoubleArrayBlock.java
+++ b/x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/DoubleArrayBlock.java
@@ -20,7 +20,7 @@
* Block implementation that stores values in a {@link DoubleArrayVector}.
* This class is generated. Edit {@code X-ArrayBlock.java.st} instead.
*/
-final class DoubleArrayBlock extends AbstractArrayBlock implements DoubleBlock {
+public final class DoubleArrayBlock extends AbstractArrayBlock implements DoubleBlock {
static final long BASE_RAM_BYTES_USED = RamUsageEstimator.shallowSizeOfInstance(DoubleArrayBlock.class);
diff --git a/x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/FloatArrayBlock.java b/x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/FloatArrayBlock.java
index 749041d80d668..d9f163585a5eb 100644
--- a/x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/FloatArrayBlock.java
+++ b/x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/FloatArrayBlock.java
@@ -20,7 +20,7 @@
* Block implementation that stores values in a {@link FloatArrayVector}.
* This class is generated. Edit {@code X-ArrayBlock.java.st} instead.
*/
-final class FloatArrayBlock extends AbstractArrayBlock implements FloatBlock {
+public final class FloatArrayBlock extends AbstractArrayBlock implements FloatBlock {
static final long BASE_RAM_BYTES_USED = RamUsageEstimator.shallowSizeOfInstance(FloatArrayBlock.class);
diff --git a/x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/IntArrayBlock.java b/x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/IntArrayBlock.java
index 0be8b6db78343..787b399c268e8 100644
--- a/x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/IntArrayBlock.java
+++ b/x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/IntArrayBlock.java
@@ -20,7 +20,7 @@
* Block implementation that stores values in a {@link IntArrayVector}.
* This class is generated. Edit {@code X-ArrayBlock.java.st} instead.
*/
-final class IntArrayBlock extends AbstractArrayBlock implements IntBlock {
+public final class IntArrayBlock extends AbstractArrayBlock implements IntBlock {
static final long BASE_RAM_BYTES_USED = RamUsageEstimator.shallowSizeOfInstance(IntArrayBlock.class);
diff --git a/x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/LongArrayBlock.java b/x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/LongArrayBlock.java
index 9b9b7a694ebb2..06adda6bb8617 100644
--- a/x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/LongArrayBlock.java
+++ b/x-pack/plugin/esql/compute/src/main/generated-src/org/elasticsearch/compute/data/LongArrayBlock.java
@@ -20,7 +20,7 @@
* Block implementation that stores values in a {@link LongArrayVector}.
* This class is generated. Edit {@code X-ArrayBlock.java.st} instead.
*/
-final class LongArrayBlock extends AbstractArrayBlock implements LongBlock {
+public final class LongArrayBlock extends AbstractArrayBlock implements LongBlock {
static final long BASE_RAM_BYTES_USED = RamUsageEstimator.shallowSizeOfInstance(LongArrayBlock.class);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctBooleanGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctBooleanGroupingAggregatorFunction.java
index d031450a77f56..5d0bde1045e29 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctBooleanGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctBooleanGroupingAggregatorFunction.java
@@ -13,8 +13,11 @@
import org.elasticsearch.compute.data.BooleanBlock;
import org.elasticsearch.compute.data.BooleanVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -69,6 +72,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -85,6 +103,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -96,28 +129,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, BooleanBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, BooleanBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- CountDistinctBooleanAggregator.combine(state, groupId, values.getBoolean(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ CountDistinctBooleanAggregator.combine(state, groupId, values.getBoolean(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, BooleanVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, BooleanVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- CountDistinctBooleanAggregator.combine(state, groupId, values.getBoolean(groupPosition + positionOffset));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ CountDistinctBooleanAggregator.combine(state, groupId, values.getBoolean(groupPosition + positionOffset));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, BooleanBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, BooleanBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -138,7 +185,7 @@ private void addRawInput(int positionOffset, IntBlock groups, BooleanBlock value
}
}
- private void addRawInput(int positionOffset, IntBlock groups, BooleanVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, BooleanVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -152,6 +199,97 @@ private void addRawInput(int positionOffset, IntBlock groups, BooleanVector valu
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, BooleanBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ CountDistinctBooleanAggregator.combine(state, groupId, values.getBoolean(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, BooleanVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ CountDistinctBooleanAggregator.combine(state, groupId, values.getBoolean(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, BooleanBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ CountDistinctBooleanAggregator.combine(state, groupId, values.getBoolean(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, BooleanVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ CountDistinctBooleanAggregator.combine(state, groupId, values.getBoolean(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, BooleanBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ CountDistinctBooleanAggregator.combine(state, groupId, values.getBoolean(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, BooleanVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ CountDistinctBooleanAggregator.combine(state, groupId, values.getBoolean(groupPosition + positionOffset));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctBytesRefGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctBytesRefGroupingAggregatorFunction.java
index fec083927d5d6..c715adea5b43a 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctBytesRefGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctBytesRefGroupingAggregatorFunction.java
@@ -14,8 +14,11 @@
import org.elasticsearch.compute.data.BytesRefBlock;
import org.elasticsearch.compute.data.BytesRefVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -72,6 +75,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -88,6 +106,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -99,30 +132,44 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, BytesRefBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- CountDistinctBytesRefAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ CountDistinctBytesRefAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, BytesRefVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- CountDistinctBytesRefAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ CountDistinctBytesRefAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -144,7 +191,7 @@ private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock valu
}
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefVector values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -159,6 +206,103 @@ private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector val
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ CountDistinctBytesRefAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ CountDistinctBytesRefAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ CountDistinctBytesRefAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ CountDistinctBytesRefAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ CountDistinctBytesRefAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ CountDistinctBytesRefAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctDoubleGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctDoubleGroupingAggregatorFunction.java
index 756e922913841..9df957d57c593 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctDoubleGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctDoubleGroupingAggregatorFunction.java
@@ -16,8 +16,11 @@
import org.elasticsearch.compute.data.DoubleBlock;
import org.elasticsearch.compute.data.DoubleVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -74,6 +77,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -90,6 +108,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -101,28 +134,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, DoubleBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- CountDistinctDoubleAggregator.combine(state, groupId, values.getDouble(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ CountDistinctDoubleAggregator.combine(state, groupId, values.getDouble(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, DoubleVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, DoubleVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- CountDistinctDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ CountDistinctDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -143,7 +190,7 @@ private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values
}
}
- private void addRawInput(int positionOffset, IntBlock groups, DoubleVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -157,6 +204,97 @@ private void addRawInput(int positionOffset, IntBlock groups, DoubleVector value
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ CountDistinctDoubleAggregator.combine(state, groupId, values.getDouble(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ CountDistinctDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, DoubleBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ CountDistinctDoubleAggregator.combine(state, groupId, values.getDouble(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, DoubleVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ CountDistinctDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, DoubleBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ CountDistinctDoubleAggregator.combine(state, groupId, values.getDouble(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, DoubleVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ CountDistinctDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctFloatGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctFloatGroupingAggregatorFunction.java
index 1462deb1aab91..88b0f37ab722e 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctFloatGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctFloatGroupingAggregatorFunction.java
@@ -16,8 +16,11 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.FloatBlock;
import org.elasticsearch.compute.data.FloatVector;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -74,6 +77,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -90,6 +108,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -101,28 +134,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, FloatBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- CountDistinctFloatAggregator.combine(state, groupId, values.getFloat(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ CountDistinctFloatAggregator.combine(state, groupId, values.getFloat(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, FloatVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, FloatVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- CountDistinctFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ CountDistinctFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, FloatBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -143,7 +190,7 @@ private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values)
}
}
- private void addRawInput(int positionOffset, IntBlock groups, FloatVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, FloatVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -157,6 +204,97 @@ private void addRawInput(int positionOffset, IntBlock groups, FloatVector values
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, FloatBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ CountDistinctFloatAggregator.combine(state, groupId, values.getFloat(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, FloatVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ CountDistinctFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, FloatBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ CountDistinctFloatAggregator.combine(state, groupId, values.getFloat(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, FloatVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ CountDistinctFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, FloatBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ CountDistinctFloatAggregator.combine(state, groupId, values.getFloat(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, FloatVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ CountDistinctFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctIntGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctIntGroupingAggregatorFunction.java
index 2145489c67096..735f1e262f4b3 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctIntGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctIntGroupingAggregatorFunction.java
@@ -14,8 +14,11 @@
import org.elasticsearch.compute.data.BytesRefBlock;
import org.elasticsearch.compute.data.BytesRefVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -72,6 +75,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -88,6 +106,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -99,28 +132,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, IntBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- CountDistinctIntAggregator.combine(state, groupId, values.getInt(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ CountDistinctIntAggregator.combine(state, groupId, values.getInt(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, IntVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, IntVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- CountDistinctIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ CountDistinctIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -141,7 +188,7 @@ private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
}
}
- private void addRawInput(int positionOffset, IntBlock groups, IntVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, IntVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -155,6 +202,97 @@ private void addRawInput(int positionOffset, IntBlock groups, IntVector values)
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, IntBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ CountDistinctIntAggregator.combine(state, groupId, values.getInt(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, IntVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ CountDistinctIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, IntBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ CountDistinctIntAggregator.combine(state, groupId, values.getInt(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, IntVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ CountDistinctIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, IntBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ CountDistinctIntAggregator.combine(state, groupId, values.getInt(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, IntVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ CountDistinctIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctLongGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctLongGroupingAggregatorFunction.java
index 20ae39cdbcd19..861d6d21c6491 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctLongGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctLongGroupingAggregatorFunction.java
@@ -14,8 +14,11 @@
import org.elasticsearch.compute.data.BytesRefBlock;
import org.elasticsearch.compute.data.BytesRefVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -74,6 +77,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -90,6 +108,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -101,28 +134,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, LongBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- CountDistinctLongAggregator.combine(state, groupId, values.getLong(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ CountDistinctLongAggregator.combine(state, groupId, values.getLong(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, LongVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, LongVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- CountDistinctLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ CountDistinctLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, LongBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -143,7 +190,7 @@ private void addRawInput(int positionOffset, IntBlock groups, LongBlock values)
}
}
- private void addRawInput(int positionOffset, IntBlock groups, LongVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, LongVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -157,6 +204,97 @@ private void addRawInput(int positionOffset, IntBlock groups, LongVector values)
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, LongBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ CountDistinctLongAggregator.combine(state, groupId, values.getLong(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, LongVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ CountDistinctLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ CountDistinctLongAggregator.combine(state, groupId, values.getLong(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ CountDistinctLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, LongBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ CountDistinctLongAggregator.combine(state, groupId, values.getLong(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, LongVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ CountDistinctLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/LastOverTimeDoubleGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/LastOverTimeDoubleGroupingAggregatorFunction.java
index 2ca6ab02875a2..a69d49e8ba8fe 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/LastOverTimeDoubleGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/LastOverTimeDoubleGroupingAggregatorFunction.java
@@ -13,8 +13,11 @@
import org.elasticsearch.compute.data.DoubleBlock;
import org.elasticsearch.compute.data.DoubleVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -76,6 +79,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
@@ -92,6 +110,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
@@ -103,31 +136,45 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, DoubleBlock values,
+ private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- LastOverTimeDoubleAggregator.combine(state, groupId, timestamps.getLong(v), values.getDouble(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ LastOverTimeDoubleAggregator.combine(state, groupId, timestamps.getLong(v), values.getDouble(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, DoubleVector values,
+ private void addRawInput(int positionOffset, IntBlock groups, DoubleVector values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- var valuePosition = groupPosition + positionOffset;
- LastOverTimeDoubleAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getDouble(valuePosition));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ var valuePosition = groupPosition + positionOffset;
+ LastOverTimeDoubleAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getDouble(valuePosition));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values,
+ private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleBlock values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -149,7 +196,45 @@ private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values
}
}
- private void addRawInput(int positionOffset, IntBlock groups, DoubleVector values,
+ private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleVector values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ var valuePosition = groupPosition + positionOffset;
+ LastOverTimeDoubleAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getDouble(valuePosition));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleBlock values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ LastOverTimeDoubleAggregator.combine(state, groupId, timestamps.getLong(v), values.getDouble(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleVector values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -165,6 +250,68 @@ private void addRawInput(int positionOffset, IntBlock groups, DoubleVector value
}
}
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, DoubleBlock values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ LastOverTimeDoubleAggregator.combine(state, groupId, timestamps.getLong(v), values.getDouble(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, DoubleVector values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ var valuePosition = groupPosition + positionOffset;
+ LastOverTimeDoubleAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getDouble(valuePosition));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, DoubleBlock values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ LastOverTimeDoubleAggregator.combine(state, groupId, timestamps.getLong(v), values.getDouble(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, DoubleVector values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ var valuePosition = groupPosition + positionOffset;
+ LastOverTimeDoubleAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getDouble(valuePosition));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/LastOverTimeFloatGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/LastOverTimeFloatGroupingAggregatorFunction.java
index 38a3b23ee8cc5..5d53c761b4848 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/LastOverTimeFloatGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/LastOverTimeFloatGroupingAggregatorFunction.java
@@ -13,8 +13,11 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.FloatBlock;
import org.elasticsearch.compute.data.FloatVector;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -76,6 +79,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
@@ -92,6 +110,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
@@ -103,31 +136,45 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, FloatBlock values,
+ private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- LastOverTimeFloatAggregator.combine(state, groupId, timestamps.getLong(v), values.getFloat(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ LastOverTimeFloatAggregator.combine(state, groupId, timestamps.getLong(v), values.getFloat(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, FloatVector values,
+ private void addRawInput(int positionOffset, IntBlock groups, FloatVector values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- var valuePosition = groupPosition + positionOffset;
- LastOverTimeFloatAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getFloat(valuePosition));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ var valuePosition = groupPosition + positionOffset;
+ LastOverTimeFloatAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getFloat(valuePosition));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values,
+ private void addRawInput(int positionOffset, IntArrayBlock groups, FloatBlock values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -149,7 +196,45 @@ private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values,
}
}
- private void addRawInput(int positionOffset, IntBlock groups, FloatVector values,
+ private void addRawInput(int positionOffset, IntArrayBlock groups, FloatVector values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ var valuePosition = groupPosition + positionOffset;
+ LastOverTimeFloatAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getFloat(valuePosition));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, FloatBlock values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ LastOverTimeFloatAggregator.combine(state, groupId, timestamps.getLong(v), values.getFloat(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, FloatVector values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -165,6 +250,68 @@ private void addRawInput(int positionOffset, IntBlock groups, FloatVector values
}
}
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, FloatBlock values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ LastOverTimeFloatAggregator.combine(state, groupId, timestamps.getLong(v), values.getFloat(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, FloatVector values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ var valuePosition = groupPosition + positionOffset;
+ LastOverTimeFloatAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getFloat(valuePosition));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, FloatBlock values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ LastOverTimeFloatAggregator.combine(state, groupId, timestamps.getLong(v), values.getFloat(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, FloatVector values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ var valuePosition = groupPosition + positionOffset;
+ LastOverTimeFloatAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getFloat(valuePosition));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/LastOverTimeIntGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/LastOverTimeIntGroupingAggregatorFunction.java
index f03728a905ac3..015c1d456bd11 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/LastOverTimeIntGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/LastOverTimeIntGroupingAggregatorFunction.java
@@ -11,8 +11,11 @@
import java.util.List;
import org.elasticsearch.compute.data.Block;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -74,6 +77,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
@@ -90,6 +108,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
@@ -101,31 +134,45 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, IntBlock values,
+ private void addRawInput(int positionOffset, IntBlock groups, IntBlock values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- LastOverTimeIntAggregator.combine(state, groupId, timestamps.getLong(v), values.getInt(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ LastOverTimeIntAggregator.combine(state, groupId, timestamps.getLong(v), values.getInt(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, IntVector values,
+ private void addRawInput(int positionOffset, IntBlock groups, IntVector values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- var valuePosition = groupPosition + positionOffset;
- LastOverTimeIntAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getInt(valuePosition));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ var valuePosition = groupPosition + positionOffset;
+ LastOverTimeIntAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getInt(valuePosition));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, IntBlock values,
+ private void addRawInput(int positionOffset, IntArrayBlock groups, IntBlock values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -147,7 +194,45 @@ private void addRawInput(int positionOffset, IntBlock groups, IntBlock values,
}
}
- private void addRawInput(int positionOffset, IntBlock groups, IntVector values,
+ private void addRawInput(int positionOffset, IntArrayBlock groups, IntVector values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ var valuePosition = groupPosition + positionOffset;
+ LastOverTimeIntAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getInt(valuePosition));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, IntBlock values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ LastOverTimeIntAggregator.combine(state, groupId, timestamps.getLong(v), values.getInt(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, IntVector values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -163,6 +248,68 @@ private void addRawInput(int positionOffset, IntBlock groups, IntVector values,
}
}
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, IntBlock values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ LastOverTimeIntAggregator.combine(state, groupId, timestamps.getLong(v), values.getInt(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, IntVector values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ var valuePosition = groupPosition + positionOffset;
+ LastOverTimeIntAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getInt(valuePosition));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, IntBlock values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ LastOverTimeIntAggregator.combine(state, groupId, timestamps.getLong(v), values.getInt(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, IntVector values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ var valuePosition = groupPosition + positionOffset;
+ LastOverTimeIntAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getInt(valuePosition));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/LastOverTimeLongGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/LastOverTimeLongGroupingAggregatorFunction.java
index c9ee5fbad3707..8a939a8206e39 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/LastOverTimeLongGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/LastOverTimeLongGroupingAggregatorFunction.java
@@ -11,8 +11,11 @@
import java.util.List;
import org.elasticsearch.compute.data.Block;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -74,6 +77,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
@@ -90,6 +108,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
@@ -101,31 +134,45 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, LongBlock values,
+ private void addRawInput(int positionOffset, IntBlock groups, LongBlock values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- LastOverTimeLongAggregator.combine(state, groupId, timestamps.getLong(v), values.getLong(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ LastOverTimeLongAggregator.combine(state, groupId, timestamps.getLong(v), values.getLong(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, LongVector values,
+ private void addRawInput(int positionOffset, IntBlock groups, LongVector values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- var valuePosition = groupPosition + positionOffset;
- LastOverTimeLongAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getLong(valuePosition));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ var valuePosition = groupPosition + positionOffset;
+ LastOverTimeLongAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getLong(valuePosition));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, LongBlock values,
+ private void addRawInput(int positionOffset, IntArrayBlock groups, LongBlock values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -147,7 +194,45 @@ private void addRawInput(int positionOffset, IntBlock groups, LongBlock values,
}
}
- private void addRawInput(int positionOffset, IntBlock groups, LongVector values,
+ private void addRawInput(int positionOffset, IntArrayBlock groups, LongVector values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ var valuePosition = groupPosition + positionOffset;
+ LastOverTimeLongAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getLong(valuePosition));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, LongBlock values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ LastOverTimeLongAggregator.combine(state, groupId, timestamps.getLong(v), values.getLong(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, LongVector values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -163,6 +248,68 @@ private void addRawInput(int positionOffset, IntBlock groups, LongVector values,
}
}
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongBlock values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ LastOverTimeLongAggregator.combine(state, groupId, timestamps.getLong(v), values.getLong(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongVector values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ var valuePosition = groupPosition + positionOffset;
+ LastOverTimeLongAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getLong(valuePosition));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, LongBlock values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ LastOverTimeLongAggregator.combine(state, groupId, timestamps.getLong(v), values.getLong(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, LongVector values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ var valuePosition = groupPosition + positionOffset;
+ LastOverTimeLongAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getLong(valuePosition));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxBooleanGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxBooleanGroupingAggregatorFunction.java
index 5e2684b85c8db..61f8c2306c44c 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxBooleanGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxBooleanGroupingAggregatorFunction.java
@@ -13,8 +13,11 @@
import org.elasticsearch.compute.data.BooleanBlock;
import org.elasticsearch.compute.data.BooleanVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -69,6 +72,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -85,6 +103,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -96,28 +129,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, BooleanBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, BooleanBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- state.set(groupId, MaxBooleanAggregator.combine(state.getOrDefault(groupId), values.getBoolean(v)));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MaxBooleanAggregator.combine(state.getOrDefault(groupId), values.getBoolean(v)));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, BooleanVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, BooleanVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- state.set(groupId, MaxBooleanAggregator.combine(state.getOrDefault(groupId), values.getBoolean(groupPosition + positionOffset)));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ state.set(groupId, MaxBooleanAggregator.combine(state.getOrDefault(groupId), values.getBoolean(groupPosition + positionOffset)));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, BooleanBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, BooleanBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -138,7 +185,7 @@ private void addRawInput(int positionOffset, IntBlock groups, BooleanBlock value
}
}
- private void addRawInput(int positionOffset, IntBlock groups, BooleanVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, BooleanVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -152,6 +199,97 @@ private void addRawInput(int positionOffset, IntBlock groups, BooleanVector valu
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, BooleanBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MaxBooleanAggregator.combine(state.getOrDefault(groupId), values.getBoolean(v)));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, BooleanVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ state.set(groupId, MaxBooleanAggregator.combine(state.getOrDefault(groupId), values.getBoolean(groupPosition + positionOffset)));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, BooleanBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MaxBooleanAggregator.combine(state.getOrDefault(groupId), values.getBoolean(v)));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, BooleanVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ state.set(groupId, MaxBooleanAggregator.combine(state.getOrDefault(groupId), values.getBoolean(groupPosition + positionOffset)));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, BooleanBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MaxBooleanAggregator.combine(state.getOrDefault(groupId), values.getBoolean(v)));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, BooleanVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ state.set(groupId, MaxBooleanAggregator.combine(state.getOrDefault(groupId), values.getBoolean(groupPosition + positionOffset)));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxBytesRefGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxBytesRefGroupingAggregatorFunction.java
index 52bc763449f59..d23d40f26573e 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxBytesRefGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxBytesRefGroupingAggregatorFunction.java
@@ -16,8 +16,11 @@
import org.elasticsearch.compute.data.BytesRefBlock;
import org.elasticsearch.compute.data.BytesRefVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -72,6 +75,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -88,6 +106,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -99,30 +132,44 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, BytesRefBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- MaxBytesRefAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ MaxBytesRefAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, BytesRefVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- MaxBytesRefAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ MaxBytesRefAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -144,7 +191,7 @@ private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock valu
}
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefVector values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -159,6 +206,103 @@ private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector val
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ MaxBytesRefAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ MaxBytesRefAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ MaxBytesRefAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ MaxBytesRefAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ MaxBytesRefAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ MaxBytesRefAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxDoubleGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxDoubleGroupingAggregatorFunction.java
index 0b2e5cca5d244..f2c03e1be72c0 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxDoubleGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxDoubleGroupingAggregatorFunction.java
@@ -15,8 +15,11 @@
import org.elasticsearch.compute.data.DoubleBlock;
import org.elasticsearch.compute.data.DoubleVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -71,6 +74,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -87,6 +105,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -98,28 +131,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, DoubleBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- state.set(groupId, MaxDoubleAggregator.combine(state.getOrDefault(groupId), values.getDouble(v)));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MaxDoubleAggregator.combine(state.getOrDefault(groupId), values.getDouble(v)));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, DoubleVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, DoubleVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- state.set(groupId, MaxDoubleAggregator.combine(state.getOrDefault(groupId), values.getDouble(groupPosition + positionOffset)));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ state.set(groupId, MaxDoubleAggregator.combine(state.getOrDefault(groupId), values.getDouble(groupPosition + positionOffset)));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -140,7 +187,7 @@ private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values
}
}
- private void addRawInput(int positionOffset, IntBlock groups, DoubleVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -154,6 +201,97 @@ private void addRawInput(int positionOffset, IntBlock groups, DoubleVector value
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MaxDoubleAggregator.combine(state.getOrDefault(groupId), values.getDouble(v)));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ state.set(groupId, MaxDoubleAggregator.combine(state.getOrDefault(groupId), values.getDouble(groupPosition + positionOffset)));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, DoubleBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MaxDoubleAggregator.combine(state.getOrDefault(groupId), values.getDouble(v)));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, DoubleVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ state.set(groupId, MaxDoubleAggregator.combine(state.getOrDefault(groupId), values.getDouble(groupPosition + positionOffset)));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, DoubleBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MaxDoubleAggregator.combine(state.getOrDefault(groupId), values.getDouble(v)));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, DoubleVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ state.set(groupId, MaxDoubleAggregator.combine(state.getOrDefault(groupId), values.getDouble(groupPosition + positionOffset)));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxFloatGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxFloatGroupingAggregatorFunction.java
index 4ec8212a2da62..fbca3791d98ef 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxFloatGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxFloatGroupingAggregatorFunction.java
@@ -15,8 +15,11 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.FloatBlock;
import org.elasticsearch.compute.data.FloatVector;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -71,6 +74,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -87,6 +105,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -98,28 +131,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, FloatBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- state.set(groupId, MaxFloatAggregator.combine(state.getOrDefault(groupId), values.getFloat(v)));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MaxFloatAggregator.combine(state.getOrDefault(groupId), values.getFloat(v)));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, FloatVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, FloatVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- state.set(groupId, MaxFloatAggregator.combine(state.getOrDefault(groupId), values.getFloat(groupPosition + positionOffset)));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ state.set(groupId, MaxFloatAggregator.combine(state.getOrDefault(groupId), values.getFloat(groupPosition + positionOffset)));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, FloatBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -140,7 +187,7 @@ private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values)
}
}
- private void addRawInput(int positionOffset, IntBlock groups, FloatVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, FloatVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -154,6 +201,97 @@ private void addRawInput(int positionOffset, IntBlock groups, FloatVector values
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, FloatBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MaxFloatAggregator.combine(state.getOrDefault(groupId), values.getFloat(v)));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, FloatVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ state.set(groupId, MaxFloatAggregator.combine(state.getOrDefault(groupId), values.getFloat(groupPosition + positionOffset)));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, FloatBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MaxFloatAggregator.combine(state.getOrDefault(groupId), values.getFloat(v)));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, FloatVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ state.set(groupId, MaxFloatAggregator.combine(state.getOrDefault(groupId), values.getFloat(groupPosition + positionOffset)));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, FloatBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MaxFloatAggregator.combine(state.getOrDefault(groupId), values.getFloat(v)));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, FloatVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ state.set(groupId, MaxFloatAggregator.combine(state.getOrDefault(groupId), values.getFloat(groupPosition + positionOffset)));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxIntGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxIntGroupingAggregatorFunction.java
index 024d0db097b29..18b69154dcffb 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxIntGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxIntGroupingAggregatorFunction.java
@@ -13,8 +13,11 @@
import org.elasticsearch.compute.data.BooleanBlock;
import org.elasticsearch.compute.data.BooleanVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -69,6 +72,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -85,6 +103,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -96,28 +129,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, IntBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- state.set(groupId, MaxIntAggregator.combine(state.getOrDefault(groupId), values.getInt(v)));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MaxIntAggregator.combine(state.getOrDefault(groupId), values.getInt(v)));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, IntVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, IntVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- state.set(groupId, MaxIntAggregator.combine(state.getOrDefault(groupId), values.getInt(groupPosition + positionOffset)));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ state.set(groupId, MaxIntAggregator.combine(state.getOrDefault(groupId), values.getInt(groupPosition + positionOffset)));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -138,7 +185,7 @@ private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
}
}
- private void addRawInput(int positionOffset, IntBlock groups, IntVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, IntVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -152,6 +199,97 @@ private void addRawInput(int positionOffset, IntBlock groups, IntVector values)
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, IntBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MaxIntAggregator.combine(state.getOrDefault(groupId), values.getInt(v)));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, IntVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ state.set(groupId, MaxIntAggregator.combine(state.getOrDefault(groupId), values.getInt(groupPosition + positionOffset)));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, IntBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MaxIntAggregator.combine(state.getOrDefault(groupId), values.getInt(v)));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, IntVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ state.set(groupId, MaxIntAggregator.combine(state.getOrDefault(groupId), values.getInt(groupPosition + positionOffset)));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, IntBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MaxIntAggregator.combine(state.getOrDefault(groupId), values.getInt(v)));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, IntVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ state.set(groupId, MaxIntAggregator.combine(state.getOrDefault(groupId), values.getInt(groupPosition + positionOffset)));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxIpGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxIpGroupingAggregatorFunction.java
index 805fc77aa9306..5e0f3bed949f9 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxIpGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxIpGroupingAggregatorFunction.java
@@ -16,8 +16,11 @@
import org.elasticsearch.compute.data.BytesRefBlock;
import org.elasticsearch.compute.data.BytesRefVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -72,6 +75,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -88,6 +106,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -99,30 +132,44 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, BytesRefBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- MaxIpAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ MaxIpAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, BytesRefVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- MaxIpAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ MaxIpAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -144,7 +191,7 @@ private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock valu
}
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefVector values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -159,6 +206,103 @@ private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector val
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ MaxIpAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ MaxIpAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ MaxIpAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ MaxIpAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ MaxIpAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ MaxIpAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxLongGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxLongGroupingAggregatorFunction.java
index 5d6fa43723e7b..a48341a50bacc 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxLongGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxLongGroupingAggregatorFunction.java
@@ -13,8 +13,11 @@
import org.elasticsearch.compute.data.BooleanBlock;
import org.elasticsearch.compute.data.BooleanVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -71,6 +74,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -87,6 +105,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -98,28 +131,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, LongBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- state.set(groupId, MaxLongAggregator.combine(state.getOrDefault(groupId), values.getLong(v)));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MaxLongAggregator.combine(state.getOrDefault(groupId), values.getLong(v)));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, LongVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, LongVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- state.set(groupId, MaxLongAggregator.combine(state.getOrDefault(groupId), values.getLong(groupPosition + positionOffset)));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ state.set(groupId, MaxLongAggregator.combine(state.getOrDefault(groupId), values.getLong(groupPosition + positionOffset)));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, LongBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -140,7 +187,7 @@ private void addRawInput(int positionOffset, IntBlock groups, LongBlock values)
}
}
- private void addRawInput(int positionOffset, IntBlock groups, LongVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, LongVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -154,6 +201,97 @@ private void addRawInput(int positionOffset, IntBlock groups, LongVector values)
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, LongBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MaxLongAggregator.combine(state.getOrDefault(groupId), values.getLong(v)));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, LongVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ state.set(groupId, MaxLongAggregator.combine(state.getOrDefault(groupId), values.getLong(groupPosition + positionOffset)));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MaxLongAggregator.combine(state.getOrDefault(groupId), values.getLong(v)));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ state.set(groupId, MaxLongAggregator.combine(state.getOrDefault(groupId), values.getLong(groupPosition + positionOffset)));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, LongBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MaxLongAggregator.combine(state.getOrDefault(groupId), values.getLong(v)));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, LongVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ state.set(groupId, MaxLongAggregator.combine(state.getOrDefault(groupId), values.getLong(groupPosition + positionOffset)));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MedianAbsoluteDeviationDoubleGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MedianAbsoluteDeviationDoubleGroupingAggregatorFunction.java
index 9091515805dff..6ec28fe565cfd 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MedianAbsoluteDeviationDoubleGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MedianAbsoluteDeviationDoubleGroupingAggregatorFunction.java
@@ -16,8 +16,11 @@
import org.elasticsearch.compute.data.DoubleBlock;
import org.elasticsearch.compute.data.DoubleVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -71,6 +74,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -87,6 +105,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -98,28 +131,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, DoubleBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- MedianAbsoluteDeviationDoubleAggregator.combine(state, groupId, values.getDouble(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ MedianAbsoluteDeviationDoubleAggregator.combine(state, groupId, values.getDouble(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, DoubleVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, DoubleVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- MedianAbsoluteDeviationDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ MedianAbsoluteDeviationDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -140,7 +187,7 @@ private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values
}
}
- private void addRawInput(int positionOffset, IntBlock groups, DoubleVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -154,6 +201,97 @@ private void addRawInput(int positionOffset, IntBlock groups, DoubleVector value
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ MedianAbsoluteDeviationDoubleAggregator.combine(state, groupId, values.getDouble(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ MedianAbsoluteDeviationDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, DoubleBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ MedianAbsoluteDeviationDoubleAggregator.combine(state, groupId, values.getDouble(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, DoubleVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ MedianAbsoluteDeviationDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, DoubleBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ MedianAbsoluteDeviationDoubleAggregator.combine(state, groupId, values.getDouble(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, DoubleVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ MedianAbsoluteDeviationDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MedianAbsoluteDeviationFloatGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MedianAbsoluteDeviationFloatGroupingAggregatorFunction.java
index 1649e40d9045d..21bd8fb17cfdb 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MedianAbsoluteDeviationFloatGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MedianAbsoluteDeviationFloatGroupingAggregatorFunction.java
@@ -16,8 +16,11 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.FloatBlock;
import org.elasticsearch.compute.data.FloatVector;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -71,6 +74,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -87,6 +105,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -98,28 +131,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, FloatBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- MedianAbsoluteDeviationFloatAggregator.combine(state, groupId, values.getFloat(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ MedianAbsoluteDeviationFloatAggregator.combine(state, groupId, values.getFloat(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, FloatVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, FloatVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- MedianAbsoluteDeviationFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ MedianAbsoluteDeviationFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, FloatBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -140,7 +187,7 @@ private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values)
}
}
- private void addRawInput(int positionOffset, IntBlock groups, FloatVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, FloatVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -154,6 +201,97 @@ private void addRawInput(int positionOffset, IntBlock groups, FloatVector values
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, FloatBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ MedianAbsoluteDeviationFloatAggregator.combine(state, groupId, values.getFloat(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, FloatVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ MedianAbsoluteDeviationFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, FloatBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ MedianAbsoluteDeviationFloatAggregator.combine(state, groupId, values.getFloat(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, FloatVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ MedianAbsoluteDeviationFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, FloatBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ MedianAbsoluteDeviationFloatAggregator.combine(state, groupId, values.getFloat(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, FloatVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ MedianAbsoluteDeviationFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MedianAbsoluteDeviationIntGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MedianAbsoluteDeviationIntGroupingAggregatorFunction.java
index 5904bef3956d3..d4c3357e6e497 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MedianAbsoluteDeviationIntGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MedianAbsoluteDeviationIntGroupingAggregatorFunction.java
@@ -14,8 +14,11 @@
import org.elasticsearch.compute.data.BytesRefBlock;
import org.elasticsearch.compute.data.BytesRefVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -69,6 +72,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -85,6 +103,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -96,28 +129,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, IntBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- MedianAbsoluteDeviationIntAggregator.combine(state, groupId, values.getInt(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ MedianAbsoluteDeviationIntAggregator.combine(state, groupId, values.getInt(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, IntVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, IntVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- MedianAbsoluteDeviationIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ MedianAbsoluteDeviationIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -138,7 +185,7 @@ private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
}
}
- private void addRawInput(int positionOffset, IntBlock groups, IntVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, IntVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -152,6 +199,97 @@ private void addRawInput(int positionOffset, IntBlock groups, IntVector values)
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, IntBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ MedianAbsoluteDeviationIntAggregator.combine(state, groupId, values.getInt(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, IntVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ MedianAbsoluteDeviationIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, IntBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ MedianAbsoluteDeviationIntAggregator.combine(state, groupId, values.getInt(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, IntVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ MedianAbsoluteDeviationIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, IntBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ MedianAbsoluteDeviationIntAggregator.combine(state, groupId, values.getInt(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, IntVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ MedianAbsoluteDeviationIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MedianAbsoluteDeviationLongGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MedianAbsoluteDeviationLongGroupingAggregatorFunction.java
index bb50db9998a59..0a4181555c631 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MedianAbsoluteDeviationLongGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MedianAbsoluteDeviationLongGroupingAggregatorFunction.java
@@ -14,8 +14,11 @@
import org.elasticsearch.compute.data.BytesRefBlock;
import org.elasticsearch.compute.data.BytesRefVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -71,6 +74,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -87,6 +105,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -98,28 +131,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, LongBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- MedianAbsoluteDeviationLongAggregator.combine(state, groupId, values.getLong(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ MedianAbsoluteDeviationLongAggregator.combine(state, groupId, values.getLong(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, LongVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, LongVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- MedianAbsoluteDeviationLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ MedianAbsoluteDeviationLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, LongBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -140,7 +187,7 @@ private void addRawInput(int positionOffset, IntBlock groups, LongBlock values)
}
}
- private void addRawInput(int positionOffset, IntBlock groups, LongVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, LongVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -154,6 +201,97 @@ private void addRawInput(int positionOffset, IntBlock groups, LongVector values)
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, LongBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ MedianAbsoluteDeviationLongAggregator.combine(state, groupId, values.getLong(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, LongVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ MedianAbsoluteDeviationLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ MedianAbsoluteDeviationLongAggregator.combine(state, groupId, values.getLong(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ MedianAbsoluteDeviationLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, LongBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ MedianAbsoluteDeviationLongAggregator.combine(state, groupId, values.getLong(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, LongVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ MedianAbsoluteDeviationLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinBooleanGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinBooleanGroupingAggregatorFunction.java
index 10bb3ca5c60bf..539f96a4fd5db 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinBooleanGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinBooleanGroupingAggregatorFunction.java
@@ -13,8 +13,11 @@
import org.elasticsearch.compute.data.BooleanBlock;
import org.elasticsearch.compute.data.BooleanVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -69,6 +72,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -85,6 +103,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -96,28 +129,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, BooleanBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, BooleanBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- state.set(groupId, MinBooleanAggregator.combine(state.getOrDefault(groupId), values.getBoolean(v)));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MinBooleanAggregator.combine(state.getOrDefault(groupId), values.getBoolean(v)));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, BooleanVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, BooleanVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- state.set(groupId, MinBooleanAggregator.combine(state.getOrDefault(groupId), values.getBoolean(groupPosition + positionOffset)));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ state.set(groupId, MinBooleanAggregator.combine(state.getOrDefault(groupId), values.getBoolean(groupPosition + positionOffset)));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, BooleanBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, BooleanBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -138,7 +185,7 @@ private void addRawInput(int positionOffset, IntBlock groups, BooleanBlock value
}
}
- private void addRawInput(int positionOffset, IntBlock groups, BooleanVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, BooleanVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -152,6 +199,97 @@ private void addRawInput(int positionOffset, IntBlock groups, BooleanVector valu
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, BooleanBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MinBooleanAggregator.combine(state.getOrDefault(groupId), values.getBoolean(v)));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, BooleanVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ state.set(groupId, MinBooleanAggregator.combine(state.getOrDefault(groupId), values.getBoolean(groupPosition + positionOffset)));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, BooleanBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MinBooleanAggregator.combine(state.getOrDefault(groupId), values.getBoolean(v)));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, BooleanVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ state.set(groupId, MinBooleanAggregator.combine(state.getOrDefault(groupId), values.getBoolean(groupPosition + positionOffset)));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, BooleanBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MinBooleanAggregator.combine(state.getOrDefault(groupId), values.getBoolean(v)));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, BooleanVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ state.set(groupId, MinBooleanAggregator.combine(state.getOrDefault(groupId), values.getBoolean(groupPosition + positionOffset)));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinBytesRefGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinBytesRefGroupingAggregatorFunction.java
index 29d96b63a8e59..d7e1c9bfb7328 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinBytesRefGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinBytesRefGroupingAggregatorFunction.java
@@ -16,8 +16,11 @@
import org.elasticsearch.compute.data.BytesRefBlock;
import org.elasticsearch.compute.data.BytesRefVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -72,6 +75,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -88,6 +106,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -99,30 +132,44 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, BytesRefBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- MinBytesRefAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ MinBytesRefAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, BytesRefVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- MinBytesRefAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ MinBytesRefAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -144,7 +191,7 @@ private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock valu
}
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefVector values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -159,6 +206,103 @@ private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector val
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ MinBytesRefAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ MinBytesRefAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ MinBytesRefAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ MinBytesRefAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ MinBytesRefAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ MinBytesRefAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinDoubleGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinDoubleGroupingAggregatorFunction.java
index c1396235fef0c..f7a2e449725a2 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinDoubleGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinDoubleGroupingAggregatorFunction.java
@@ -15,8 +15,11 @@
import org.elasticsearch.compute.data.DoubleBlock;
import org.elasticsearch.compute.data.DoubleVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -71,6 +74,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -87,6 +105,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -98,28 +131,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, DoubleBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- state.set(groupId, MinDoubleAggregator.combine(state.getOrDefault(groupId), values.getDouble(v)));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MinDoubleAggregator.combine(state.getOrDefault(groupId), values.getDouble(v)));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, DoubleVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, DoubleVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- state.set(groupId, MinDoubleAggregator.combine(state.getOrDefault(groupId), values.getDouble(groupPosition + positionOffset)));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ state.set(groupId, MinDoubleAggregator.combine(state.getOrDefault(groupId), values.getDouble(groupPosition + positionOffset)));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -140,7 +187,7 @@ private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values
}
}
- private void addRawInput(int positionOffset, IntBlock groups, DoubleVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -154,6 +201,97 @@ private void addRawInput(int positionOffset, IntBlock groups, DoubleVector value
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MinDoubleAggregator.combine(state.getOrDefault(groupId), values.getDouble(v)));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ state.set(groupId, MinDoubleAggregator.combine(state.getOrDefault(groupId), values.getDouble(groupPosition + positionOffset)));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, DoubleBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MinDoubleAggregator.combine(state.getOrDefault(groupId), values.getDouble(v)));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, DoubleVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ state.set(groupId, MinDoubleAggregator.combine(state.getOrDefault(groupId), values.getDouble(groupPosition + positionOffset)));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, DoubleBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MinDoubleAggregator.combine(state.getOrDefault(groupId), values.getDouble(v)));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, DoubleVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ state.set(groupId, MinDoubleAggregator.combine(state.getOrDefault(groupId), values.getDouble(groupPosition + positionOffset)));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinFloatGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinFloatGroupingAggregatorFunction.java
index daadf3d7dbb53..688c220afa451 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinFloatGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinFloatGroupingAggregatorFunction.java
@@ -15,8 +15,11 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.FloatBlock;
import org.elasticsearch.compute.data.FloatVector;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -71,6 +74,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -87,6 +105,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -98,28 +131,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, FloatBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- state.set(groupId, MinFloatAggregator.combine(state.getOrDefault(groupId), values.getFloat(v)));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MinFloatAggregator.combine(state.getOrDefault(groupId), values.getFloat(v)));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, FloatVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, FloatVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- state.set(groupId, MinFloatAggregator.combine(state.getOrDefault(groupId), values.getFloat(groupPosition + positionOffset)));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ state.set(groupId, MinFloatAggregator.combine(state.getOrDefault(groupId), values.getFloat(groupPosition + positionOffset)));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, FloatBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -140,7 +187,7 @@ private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values)
}
}
- private void addRawInput(int positionOffset, IntBlock groups, FloatVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, FloatVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -154,6 +201,97 @@ private void addRawInput(int positionOffset, IntBlock groups, FloatVector values
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, FloatBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MinFloatAggregator.combine(state.getOrDefault(groupId), values.getFloat(v)));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, FloatVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ state.set(groupId, MinFloatAggregator.combine(state.getOrDefault(groupId), values.getFloat(groupPosition + positionOffset)));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, FloatBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MinFloatAggregator.combine(state.getOrDefault(groupId), values.getFloat(v)));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, FloatVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ state.set(groupId, MinFloatAggregator.combine(state.getOrDefault(groupId), values.getFloat(groupPosition + positionOffset)));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, FloatBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MinFloatAggregator.combine(state.getOrDefault(groupId), values.getFloat(v)));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, FloatVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ state.set(groupId, MinFloatAggregator.combine(state.getOrDefault(groupId), values.getFloat(groupPosition + positionOffset)));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinIntGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinIntGroupingAggregatorFunction.java
index 8f92c63096766..26f362ee4c2f1 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinIntGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinIntGroupingAggregatorFunction.java
@@ -13,8 +13,11 @@
import org.elasticsearch.compute.data.BooleanBlock;
import org.elasticsearch.compute.data.BooleanVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -69,6 +72,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -85,6 +103,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -96,28 +129,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, IntBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- state.set(groupId, MinIntAggregator.combine(state.getOrDefault(groupId), values.getInt(v)));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MinIntAggregator.combine(state.getOrDefault(groupId), values.getInt(v)));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, IntVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, IntVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- state.set(groupId, MinIntAggregator.combine(state.getOrDefault(groupId), values.getInt(groupPosition + positionOffset)));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ state.set(groupId, MinIntAggregator.combine(state.getOrDefault(groupId), values.getInt(groupPosition + positionOffset)));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -138,7 +185,7 @@ private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
}
}
- private void addRawInput(int positionOffset, IntBlock groups, IntVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, IntVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -152,6 +199,97 @@ private void addRawInput(int positionOffset, IntBlock groups, IntVector values)
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, IntBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MinIntAggregator.combine(state.getOrDefault(groupId), values.getInt(v)));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, IntVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ state.set(groupId, MinIntAggregator.combine(state.getOrDefault(groupId), values.getInt(groupPosition + positionOffset)));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, IntBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MinIntAggregator.combine(state.getOrDefault(groupId), values.getInt(v)));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, IntVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ state.set(groupId, MinIntAggregator.combine(state.getOrDefault(groupId), values.getInt(groupPosition + positionOffset)));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, IntBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MinIntAggregator.combine(state.getOrDefault(groupId), values.getInt(v)));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, IntVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ state.set(groupId, MinIntAggregator.combine(state.getOrDefault(groupId), values.getInt(groupPosition + positionOffset)));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinIpGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinIpGroupingAggregatorFunction.java
index 05a5c3b57e2a6..14db59fbeeac3 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinIpGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinIpGroupingAggregatorFunction.java
@@ -16,8 +16,11 @@
import org.elasticsearch.compute.data.BytesRefBlock;
import org.elasticsearch.compute.data.BytesRefVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -72,6 +75,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -88,6 +106,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -99,30 +132,44 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, BytesRefBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- MinIpAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ MinIpAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, BytesRefVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- MinIpAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ MinIpAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -144,7 +191,7 @@ private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock valu
}
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefVector values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -159,6 +206,103 @@ private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector val
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ MinIpAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ MinIpAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ MinIpAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ MinIpAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ MinIpAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ MinIpAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinLongGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinLongGroupingAggregatorFunction.java
index c6421afa46211..55b54827c9add 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinLongGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinLongGroupingAggregatorFunction.java
@@ -13,8 +13,11 @@
import org.elasticsearch.compute.data.BooleanBlock;
import org.elasticsearch.compute.data.BooleanVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -71,6 +74,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -87,6 +105,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -98,28 +131,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, LongBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- state.set(groupId, MinLongAggregator.combine(state.getOrDefault(groupId), values.getLong(v)));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MinLongAggregator.combine(state.getOrDefault(groupId), values.getLong(v)));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, LongVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, LongVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- state.set(groupId, MinLongAggregator.combine(state.getOrDefault(groupId), values.getLong(groupPosition + positionOffset)));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ state.set(groupId, MinLongAggregator.combine(state.getOrDefault(groupId), values.getLong(groupPosition + positionOffset)));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, LongBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -140,7 +187,7 @@ private void addRawInput(int positionOffset, IntBlock groups, LongBlock values)
}
}
- private void addRawInput(int positionOffset, IntBlock groups, LongVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, LongVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -154,6 +201,97 @@ private void addRawInput(int positionOffset, IntBlock groups, LongVector values)
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, LongBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MinLongAggregator.combine(state.getOrDefault(groupId), values.getLong(v)));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, LongVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ state.set(groupId, MinLongAggregator.combine(state.getOrDefault(groupId), values.getLong(groupPosition + positionOffset)));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MinLongAggregator.combine(state.getOrDefault(groupId), values.getLong(v)));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ state.set(groupId, MinLongAggregator.combine(state.getOrDefault(groupId), values.getLong(groupPosition + positionOffset)));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, LongBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, MinLongAggregator.combine(state.getOrDefault(groupId), values.getLong(v)));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, LongVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ state.set(groupId, MinLongAggregator.combine(state.getOrDefault(groupId), values.getLong(groupPosition + positionOffset)));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/PercentileDoubleGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/PercentileDoubleGroupingAggregatorFunction.java
index a2ba67333a05d..b24f7c5b11281 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/PercentileDoubleGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/PercentileDoubleGroupingAggregatorFunction.java
@@ -16,8 +16,11 @@
import org.elasticsearch.compute.data.DoubleBlock;
import org.elasticsearch.compute.data.DoubleVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -74,6 +77,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -90,6 +108,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -101,28 +134,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, DoubleBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- PercentileDoubleAggregator.combine(state, groupId, values.getDouble(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ PercentileDoubleAggregator.combine(state, groupId, values.getDouble(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, DoubleVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, DoubleVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- PercentileDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ PercentileDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -143,7 +190,7 @@ private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values
}
}
- private void addRawInput(int positionOffset, IntBlock groups, DoubleVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -157,6 +204,97 @@ private void addRawInput(int positionOffset, IntBlock groups, DoubleVector value
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ PercentileDoubleAggregator.combine(state, groupId, values.getDouble(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ PercentileDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, DoubleBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ PercentileDoubleAggregator.combine(state, groupId, values.getDouble(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, DoubleVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ PercentileDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, DoubleBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ PercentileDoubleAggregator.combine(state, groupId, values.getDouble(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, DoubleVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ PercentileDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/PercentileFloatGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/PercentileFloatGroupingAggregatorFunction.java
index 4c24b1b4221c6..e3e5d77ed5805 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/PercentileFloatGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/PercentileFloatGroupingAggregatorFunction.java
@@ -16,8 +16,11 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.FloatBlock;
import org.elasticsearch.compute.data.FloatVector;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -74,6 +77,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -90,6 +108,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -101,28 +134,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, FloatBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- PercentileFloatAggregator.combine(state, groupId, values.getFloat(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ PercentileFloatAggregator.combine(state, groupId, values.getFloat(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, FloatVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, FloatVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- PercentileFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ PercentileFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, FloatBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -143,7 +190,7 @@ private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values)
}
}
- private void addRawInput(int positionOffset, IntBlock groups, FloatVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, FloatVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -157,6 +204,97 @@ private void addRawInput(int positionOffset, IntBlock groups, FloatVector values
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, FloatBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ PercentileFloatAggregator.combine(state, groupId, values.getFloat(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, FloatVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ PercentileFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, FloatBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ PercentileFloatAggregator.combine(state, groupId, values.getFloat(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, FloatVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ PercentileFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, FloatBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ PercentileFloatAggregator.combine(state, groupId, values.getFloat(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, FloatVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ PercentileFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/PercentileIntGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/PercentileIntGroupingAggregatorFunction.java
index 97ce87021f4f8..37bcb43c8934a 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/PercentileIntGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/PercentileIntGroupingAggregatorFunction.java
@@ -14,8 +14,11 @@
import org.elasticsearch.compute.data.BytesRefBlock;
import org.elasticsearch.compute.data.BytesRefVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -72,6 +75,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -88,6 +106,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -99,28 +132,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, IntBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- PercentileIntAggregator.combine(state, groupId, values.getInt(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ PercentileIntAggregator.combine(state, groupId, values.getInt(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, IntVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, IntVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- PercentileIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ PercentileIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -141,7 +188,7 @@ private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
}
}
- private void addRawInput(int positionOffset, IntBlock groups, IntVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, IntVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -155,6 +202,97 @@ private void addRawInput(int positionOffset, IntBlock groups, IntVector values)
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, IntBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ PercentileIntAggregator.combine(state, groupId, values.getInt(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, IntVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ PercentileIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, IntBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ PercentileIntAggregator.combine(state, groupId, values.getInt(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, IntVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ PercentileIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, IntBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ PercentileIntAggregator.combine(state, groupId, values.getInt(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, IntVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ PercentileIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/PercentileLongGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/PercentileLongGroupingAggregatorFunction.java
index f2680fd7b5bef..5f6ad9031f63d 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/PercentileLongGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/PercentileLongGroupingAggregatorFunction.java
@@ -14,8 +14,11 @@
import org.elasticsearch.compute.data.BytesRefBlock;
import org.elasticsearch.compute.data.BytesRefVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -74,6 +77,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -90,6 +108,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -101,28 +134,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, LongBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- PercentileLongAggregator.combine(state, groupId, values.getLong(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ PercentileLongAggregator.combine(state, groupId, values.getLong(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, LongVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, LongVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- PercentileLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ PercentileLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, LongBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -143,7 +190,7 @@ private void addRawInput(int positionOffset, IntBlock groups, LongBlock values)
}
}
- private void addRawInput(int positionOffset, IntBlock groups, LongVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, LongVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -157,6 +204,97 @@ private void addRawInput(int positionOffset, IntBlock groups, LongVector values)
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, LongBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ PercentileLongAggregator.combine(state, groupId, values.getLong(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, LongVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ PercentileLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ PercentileLongAggregator.combine(state, groupId, values.getLong(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ PercentileLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, LongBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ PercentileLongAggregator.combine(state, groupId, values.getLong(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, LongVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ PercentileLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/RateDoubleGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/RateDoubleGroupingAggregatorFunction.java
index e12686f2a66fa..f619398f62f1e 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/RateDoubleGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/RateDoubleGroupingAggregatorFunction.java
@@ -13,8 +13,11 @@
import org.elasticsearch.compute.data.DoubleBlock;
import org.elasticsearch.compute.data.DoubleVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -78,6 +81,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
@@ -94,6 +112,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
@@ -105,31 +138,45 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, DoubleBlock values,
+ private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- RateDoubleAggregator.combine(state, groupId, timestamps.getLong(v), values.getDouble(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ RateDoubleAggregator.combine(state, groupId, timestamps.getLong(v), values.getDouble(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, DoubleVector values,
+ private void addRawInput(int positionOffset, IntBlock groups, DoubleVector values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- var valuePosition = groupPosition + positionOffset;
- RateDoubleAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getDouble(valuePosition));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ var valuePosition = groupPosition + positionOffset;
+ RateDoubleAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getDouble(valuePosition));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values,
+ private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleBlock values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -151,7 +198,45 @@ private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values
}
}
- private void addRawInput(int positionOffset, IntBlock groups, DoubleVector values,
+ private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleVector values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ var valuePosition = groupPosition + positionOffset;
+ RateDoubleAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getDouble(valuePosition));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleBlock values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ RateDoubleAggregator.combine(state, groupId, timestamps.getLong(v), values.getDouble(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleVector values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -167,6 +252,68 @@ private void addRawInput(int positionOffset, IntBlock groups, DoubleVector value
}
}
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, DoubleBlock values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ RateDoubleAggregator.combine(state, groupId, timestamps.getLong(v), values.getDouble(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, DoubleVector values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ var valuePosition = groupPosition + positionOffset;
+ RateDoubleAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getDouble(valuePosition));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, DoubleBlock values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ RateDoubleAggregator.combine(state, groupId, timestamps.getLong(v), values.getDouble(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, DoubleVector values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ var valuePosition = groupPosition + positionOffset;
+ RateDoubleAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getDouble(valuePosition));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/RateFloatGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/RateFloatGroupingAggregatorFunction.java
index 5e2aced928554..e29a5064c8e4e 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/RateFloatGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/RateFloatGroupingAggregatorFunction.java
@@ -15,8 +15,11 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.FloatBlock;
import org.elasticsearch.compute.data.FloatVector;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -80,6 +83,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
@@ -96,6 +114,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
@@ -107,31 +140,45 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, FloatBlock values,
+ private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- RateFloatAggregator.combine(state, groupId, timestamps.getLong(v), values.getFloat(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ RateFloatAggregator.combine(state, groupId, timestamps.getLong(v), values.getFloat(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, FloatVector values,
+ private void addRawInput(int positionOffset, IntBlock groups, FloatVector values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- var valuePosition = groupPosition + positionOffset;
- RateFloatAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getFloat(valuePosition));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ var valuePosition = groupPosition + positionOffset;
+ RateFloatAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getFloat(valuePosition));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values,
+ private void addRawInput(int positionOffset, IntArrayBlock groups, FloatBlock values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -153,7 +200,45 @@ private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values,
}
}
- private void addRawInput(int positionOffset, IntBlock groups, FloatVector values,
+ private void addRawInput(int positionOffset, IntArrayBlock groups, FloatVector values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ var valuePosition = groupPosition + positionOffset;
+ RateFloatAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getFloat(valuePosition));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, FloatBlock values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ RateFloatAggregator.combine(state, groupId, timestamps.getLong(v), values.getFloat(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, FloatVector values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -169,6 +254,68 @@ private void addRawInput(int positionOffset, IntBlock groups, FloatVector values
}
}
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, FloatBlock values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ RateFloatAggregator.combine(state, groupId, timestamps.getLong(v), values.getFloat(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, FloatVector values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ var valuePosition = groupPosition + positionOffset;
+ RateFloatAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getFloat(valuePosition));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, FloatBlock values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ RateFloatAggregator.combine(state, groupId, timestamps.getLong(v), values.getFloat(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, FloatVector values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ var valuePosition = groupPosition + positionOffset;
+ RateFloatAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getFloat(valuePosition));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/RateIntGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/RateIntGroupingAggregatorFunction.java
index c85a0ac5b9fe0..5cce5d5c087eb 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/RateIntGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/RateIntGroupingAggregatorFunction.java
@@ -13,8 +13,11 @@
import org.elasticsearch.compute.data.DoubleBlock;
import org.elasticsearch.compute.data.DoubleVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -78,6 +81,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
@@ -94,6 +112,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
@@ -105,31 +138,45 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, IntBlock values,
+ private void addRawInput(int positionOffset, IntBlock groups, IntBlock values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- RateIntAggregator.combine(state, groupId, timestamps.getLong(v), values.getInt(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ RateIntAggregator.combine(state, groupId, timestamps.getLong(v), values.getInt(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, IntVector values,
+ private void addRawInput(int positionOffset, IntBlock groups, IntVector values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- var valuePosition = groupPosition + positionOffset;
- RateIntAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getInt(valuePosition));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ var valuePosition = groupPosition + positionOffset;
+ RateIntAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getInt(valuePosition));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, IntBlock values,
+ private void addRawInput(int positionOffset, IntArrayBlock groups, IntBlock values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -151,7 +198,45 @@ private void addRawInput(int positionOffset, IntBlock groups, IntBlock values,
}
}
- private void addRawInput(int positionOffset, IntBlock groups, IntVector values,
+ private void addRawInput(int positionOffset, IntArrayBlock groups, IntVector values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ var valuePosition = groupPosition + positionOffset;
+ RateIntAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getInt(valuePosition));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, IntBlock values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ RateIntAggregator.combine(state, groupId, timestamps.getLong(v), values.getInt(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, IntVector values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -167,6 +252,68 @@ private void addRawInput(int positionOffset, IntBlock groups, IntVector values,
}
}
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, IntBlock values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ RateIntAggregator.combine(state, groupId, timestamps.getLong(v), values.getInt(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, IntVector values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ var valuePosition = groupPosition + positionOffset;
+ RateIntAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getInt(valuePosition));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, IntBlock values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ RateIntAggregator.combine(state, groupId, timestamps.getLong(v), values.getInt(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, IntVector values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ var valuePosition = groupPosition + positionOffset;
+ RateIntAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getInt(valuePosition));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/RateLongGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/RateLongGroupingAggregatorFunction.java
index 98996069fe554..21bba3a723db5 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/RateLongGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/RateLongGroupingAggregatorFunction.java
@@ -13,8 +13,11 @@
import org.elasticsearch.compute.data.DoubleBlock;
import org.elasticsearch.compute.data.DoubleVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -78,6 +81,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
@@ -94,6 +112,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
@@ -105,31 +138,45 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, LongBlock values,
+ private void addRawInput(int positionOffset, IntBlock groups, LongBlock values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- RateLongAggregator.combine(state, groupId, timestamps.getLong(v), values.getLong(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ RateLongAggregator.combine(state, groupId, timestamps.getLong(v), values.getLong(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, LongVector values,
+ private void addRawInput(int positionOffset, IntBlock groups, LongVector values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- var valuePosition = groupPosition + positionOffset;
- RateLongAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getLong(valuePosition));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ var valuePosition = groupPosition + positionOffset;
+ RateLongAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getLong(valuePosition));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, LongBlock values,
+ private void addRawInput(int positionOffset, IntArrayBlock groups, LongBlock values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -151,7 +198,45 @@ private void addRawInput(int positionOffset, IntBlock groups, LongBlock values,
}
}
- private void addRawInput(int positionOffset, IntBlock groups, LongVector values,
+ private void addRawInput(int positionOffset, IntArrayBlock groups, LongVector values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ var valuePosition = groupPosition + positionOffset;
+ RateLongAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getLong(valuePosition));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, LongBlock values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ RateLongAggregator.combine(state, groupId, timestamps.getLong(v), values.getLong(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, LongVector values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -167,6 +252,68 @@ private void addRawInput(int positionOffset, IntBlock groups, LongVector values,
}
}
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongBlock values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ RateLongAggregator.combine(state, groupId, timestamps.getLong(v), values.getLong(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongVector values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ var valuePosition = groupPosition + positionOffset;
+ RateLongAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getLong(valuePosition));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, LongBlock values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ RateLongAggregator.combine(state, groupId, timestamps.getLong(v), values.getLong(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, LongVector values,
+ LongVector timestamps) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ var valuePosition = groupPosition + positionOffset;
+ RateLongAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getLong(valuePosition));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/StdDevDoubleGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/StdDevDoubleGroupingAggregatorFunction.java
index bbf1930cf0524..f565a9d30a1fa 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/StdDevDoubleGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/StdDevDoubleGroupingAggregatorFunction.java
@@ -13,8 +13,11 @@
import org.elasticsearch.compute.data.DoubleBlock;
import org.elasticsearch.compute.data.DoubleVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -72,6 +75,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -88,6 +106,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -99,28 +132,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, DoubleBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- StdDevDoubleAggregator.combine(state, groupId, values.getDouble(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ StdDevDoubleAggregator.combine(state, groupId, values.getDouble(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, DoubleVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, DoubleVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- StdDevDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ StdDevDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -141,7 +188,7 @@ private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values
}
}
- private void addRawInput(int positionOffset, IntBlock groups, DoubleVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -155,6 +202,97 @@ private void addRawInput(int positionOffset, IntBlock groups, DoubleVector value
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ StdDevDoubleAggregator.combine(state, groupId, values.getDouble(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ StdDevDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, DoubleBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ StdDevDoubleAggregator.combine(state, groupId, values.getDouble(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, DoubleVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ StdDevDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, DoubleBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ StdDevDoubleAggregator.combine(state, groupId, values.getDouble(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, DoubleVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ StdDevDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/StdDevFloatGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/StdDevFloatGroupingAggregatorFunction.java
index 818dd28386b9f..19639215f7312 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/StdDevFloatGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/StdDevFloatGroupingAggregatorFunction.java
@@ -15,8 +15,11 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.FloatBlock;
import org.elasticsearch.compute.data.FloatVector;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -74,6 +77,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -90,6 +108,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -101,28 +134,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, FloatBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- StdDevFloatAggregator.combine(state, groupId, values.getFloat(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ StdDevFloatAggregator.combine(state, groupId, values.getFloat(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, FloatVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, FloatVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- StdDevFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ StdDevFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, FloatBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -143,7 +190,7 @@ private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values)
}
}
- private void addRawInput(int positionOffset, IntBlock groups, FloatVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, FloatVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -157,6 +204,97 @@ private void addRawInput(int positionOffset, IntBlock groups, FloatVector values
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, FloatBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ StdDevFloatAggregator.combine(state, groupId, values.getFloat(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, FloatVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ StdDevFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, FloatBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ StdDevFloatAggregator.combine(state, groupId, values.getFloat(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, FloatVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ StdDevFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, FloatBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ StdDevFloatAggregator.combine(state, groupId, values.getFloat(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, FloatVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ StdDevFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/StdDevIntGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/StdDevIntGroupingAggregatorFunction.java
index d8417d71dc784..5c691e4f1f4a2 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/StdDevIntGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/StdDevIntGroupingAggregatorFunction.java
@@ -13,8 +13,11 @@
import org.elasticsearch.compute.data.DoubleBlock;
import org.elasticsearch.compute.data.DoubleVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -72,6 +75,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -88,6 +106,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -99,28 +132,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, IntBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- StdDevIntAggregator.combine(state, groupId, values.getInt(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ StdDevIntAggregator.combine(state, groupId, values.getInt(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, IntVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, IntVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- StdDevIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ StdDevIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -141,7 +188,7 @@ private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
}
}
- private void addRawInput(int positionOffset, IntBlock groups, IntVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, IntVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -155,6 +202,97 @@ private void addRawInput(int positionOffset, IntBlock groups, IntVector values)
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, IntBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ StdDevIntAggregator.combine(state, groupId, values.getInt(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, IntVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ StdDevIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, IntBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ StdDevIntAggregator.combine(state, groupId, values.getInt(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, IntVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ StdDevIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, IntBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ StdDevIntAggregator.combine(state, groupId, values.getInt(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, IntVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ StdDevIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/StdDevLongGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/StdDevLongGroupingAggregatorFunction.java
index fc5f061a04620..e627f3bb2848e 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/StdDevLongGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/StdDevLongGroupingAggregatorFunction.java
@@ -13,8 +13,11 @@
import org.elasticsearch.compute.data.DoubleBlock;
import org.elasticsearch.compute.data.DoubleVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -72,6 +75,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -88,6 +106,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -99,28 +132,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, LongBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- StdDevLongAggregator.combine(state, groupId, values.getLong(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ StdDevLongAggregator.combine(state, groupId, values.getLong(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, LongVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, LongVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- StdDevLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ StdDevLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, LongBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -141,7 +188,7 @@ private void addRawInput(int positionOffset, IntBlock groups, LongBlock values)
}
}
- private void addRawInput(int positionOffset, IntBlock groups, LongVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, LongVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -155,6 +202,97 @@ private void addRawInput(int positionOffset, IntBlock groups, LongVector values)
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, LongBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ StdDevLongAggregator.combine(state, groupId, values.getLong(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, LongVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ StdDevLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ StdDevLongAggregator.combine(state, groupId, values.getLong(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ StdDevLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, LongBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ StdDevLongAggregator.combine(state, groupId, values.getLong(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, LongVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ StdDevLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/SumDoubleGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/SumDoubleGroupingAggregatorFunction.java
index d566756ca3282..452ebe1ee21a0 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/SumDoubleGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/SumDoubleGroupingAggregatorFunction.java
@@ -15,8 +15,11 @@
import org.elasticsearch.compute.data.DoubleBlock;
import org.elasticsearch.compute.data.DoubleVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -72,6 +75,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -88,6 +106,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -99,28 +132,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, DoubleBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- SumDoubleAggregator.combine(state, groupId, values.getDouble(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SumDoubleAggregator.combine(state, groupId, values.getDouble(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, DoubleVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, DoubleVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- SumDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ SumDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -141,7 +188,7 @@ private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values
}
}
- private void addRawInput(int positionOffset, IntBlock groups, DoubleVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -155,6 +202,97 @@ private void addRawInput(int positionOffset, IntBlock groups, DoubleVector value
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SumDoubleAggregator.combine(state, groupId, values.getDouble(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ SumDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, DoubleBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SumDoubleAggregator.combine(state, groupId, values.getDouble(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, DoubleVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ SumDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, DoubleBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SumDoubleAggregator.combine(state, groupId, values.getDouble(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, DoubleVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ SumDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/SumFloatGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/SumFloatGroupingAggregatorFunction.java
index e12f91f4451a8..dc0ea3d605ebc 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/SumFloatGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/SumFloatGroupingAggregatorFunction.java
@@ -17,8 +17,11 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.FloatBlock;
import org.elasticsearch.compute.data.FloatVector;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -74,6 +77,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -90,6 +108,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -101,28 +134,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, FloatBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- SumFloatAggregator.combine(state, groupId, values.getFloat(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SumFloatAggregator.combine(state, groupId, values.getFloat(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, FloatVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, FloatVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- SumFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ SumFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, FloatBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -143,7 +190,7 @@ private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values)
}
}
- private void addRawInput(int positionOffset, IntBlock groups, FloatVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, FloatVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -157,6 +204,97 @@ private void addRawInput(int positionOffset, IntBlock groups, FloatVector values
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, FloatBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SumFloatAggregator.combine(state, groupId, values.getFloat(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, FloatVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ SumFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, FloatBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SumFloatAggregator.combine(state, groupId, values.getFloat(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, FloatVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ SumFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, FloatBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SumFloatAggregator.combine(state, groupId, values.getFloat(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, FloatVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ SumFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/SumIntGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/SumIntGroupingAggregatorFunction.java
index 91c04d9370060..68281b8eb12f0 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/SumIntGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/SumIntGroupingAggregatorFunction.java
@@ -13,8 +13,11 @@
import org.elasticsearch.compute.data.BooleanBlock;
import org.elasticsearch.compute.data.BooleanVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -71,6 +74,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -87,6 +105,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -98,28 +131,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, IntBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- state.set(groupId, SumIntAggregator.combine(state.getOrDefault(groupId), values.getInt(v)));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, SumIntAggregator.combine(state.getOrDefault(groupId), values.getInt(v)));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, IntVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, IntVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- state.set(groupId, SumIntAggregator.combine(state.getOrDefault(groupId), values.getInt(groupPosition + positionOffset)));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ state.set(groupId, SumIntAggregator.combine(state.getOrDefault(groupId), values.getInt(groupPosition + positionOffset)));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -140,7 +187,7 @@ private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
}
}
- private void addRawInput(int positionOffset, IntBlock groups, IntVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, IntVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -154,6 +201,97 @@ private void addRawInput(int positionOffset, IntBlock groups, IntVector values)
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, IntBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, SumIntAggregator.combine(state.getOrDefault(groupId), values.getInt(v)));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, IntVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ state.set(groupId, SumIntAggregator.combine(state.getOrDefault(groupId), values.getInt(groupPosition + positionOffset)));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, IntBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, SumIntAggregator.combine(state.getOrDefault(groupId), values.getInt(v)));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, IntVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ state.set(groupId, SumIntAggregator.combine(state.getOrDefault(groupId), values.getInt(groupPosition + positionOffset)));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, IntBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, SumIntAggregator.combine(state.getOrDefault(groupId), values.getInt(v)));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, IntVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ state.set(groupId, SumIntAggregator.combine(state.getOrDefault(groupId), values.getInt(groupPosition + positionOffset)));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/SumLongGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/SumLongGroupingAggregatorFunction.java
index e53dfa3857753..54b06690d281e 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/SumLongGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/SumLongGroupingAggregatorFunction.java
@@ -13,8 +13,11 @@
import org.elasticsearch.compute.data.BooleanBlock;
import org.elasticsearch.compute.data.BooleanVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -71,6 +74,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -87,6 +105,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -98,28 +131,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, LongBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- state.set(groupId, SumLongAggregator.combine(state.getOrDefault(groupId), values.getLong(v)));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, SumLongAggregator.combine(state.getOrDefault(groupId), values.getLong(v)));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, LongVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, LongVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- state.set(groupId, SumLongAggregator.combine(state.getOrDefault(groupId), values.getLong(groupPosition + positionOffset)));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ state.set(groupId, SumLongAggregator.combine(state.getOrDefault(groupId), values.getLong(groupPosition + positionOffset)));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, LongBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -140,7 +187,7 @@ private void addRawInput(int positionOffset, IntBlock groups, LongBlock values)
}
}
- private void addRawInput(int positionOffset, IntBlock groups, LongVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, LongVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -154,6 +201,97 @@ private void addRawInput(int positionOffset, IntBlock groups, LongVector values)
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, LongBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, SumLongAggregator.combine(state.getOrDefault(groupId), values.getLong(v)));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, LongVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ state.set(groupId, SumLongAggregator.combine(state.getOrDefault(groupId), values.getLong(groupPosition + positionOffset)));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, SumLongAggregator.combine(state.getOrDefault(groupId), values.getLong(v)));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ state.set(groupId, SumLongAggregator.combine(state.getOrDefault(groupId), values.getLong(groupPosition + positionOffset)));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, LongBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ state.set(groupId, SumLongAggregator.combine(state.getOrDefault(groupId), values.getLong(v)));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, LongVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ state.set(groupId, SumLongAggregator.combine(state.getOrDefault(groupId), values.getLong(groupPosition + positionOffset)));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopBooleanGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopBooleanGroupingAggregatorFunction.java
index dc0e2831ee3ea..bd8dce74df88e 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopBooleanGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopBooleanGroupingAggregatorFunction.java
@@ -13,8 +13,11 @@
import org.elasticsearch.compute.data.BooleanBlock;
import org.elasticsearch.compute.data.BooleanVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -75,6 +78,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -91,6 +109,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -102,28 +135,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, BooleanBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, BooleanBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- TopBooleanAggregator.combine(state, groupId, values.getBoolean(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ TopBooleanAggregator.combine(state, groupId, values.getBoolean(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, BooleanVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, BooleanVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- TopBooleanAggregator.combine(state, groupId, values.getBoolean(groupPosition + positionOffset));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ TopBooleanAggregator.combine(state, groupId, values.getBoolean(groupPosition + positionOffset));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, BooleanBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, BooleanBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -144,7 +191,7 @@ private void addRawInput(int positionOffset, IntBlock groups, BooleanBlock value
}
}
- private void addRawInput(int positionOffset, IntBlock groups, BooleanVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, BooleanVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -158,6 +205,97 @@ private void addRawInput(int positionOffset, IntBlock groups, BooleanVector valu
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, BooleanBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ TopBooleanAggregator.combine(state, groupId, values.getBoolean(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, BooleanVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ TopBooleanAggregator.combine(state, groupId, values.getBoolean(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, BooleanBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ TopBooleanAggregator.combine(state, groupId, values.getBoolean(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, BooleanVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ TopBooleanAggregator.combine(state, groupId, values.getBoolean(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, BooleanBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ TopBooleanAggregator.combine(state, groupId, values.getBoolean(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, BooleanVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ TopBooleanAggregator.combine(state, groupId, values.getBoolean(groupPosition + positionOffset));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopBytesRefGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopBytesRefGroupingAggregatorFunction.java
index aa779dfc4afad..594b06f6463ec 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopBytesRefGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopBytesRefGroupingAggregatorFunction.java
@@ -14,8 +14,11 @@
import org.elasticsearch.compute.data.BytesRefBlock;
import org.elasticsearch.compute.data.BytesRefVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -76,6 +79,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -92,6 +110,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -103,30 +136,44 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, BytesRefBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- TopBytesRefAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ TopBytesRefAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, BytesRefVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- TopBytesRefAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ TopBytesRefAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -148,7 +195,7 @@ private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock valu
}
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefVector values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -163,6 +210,103 @@ private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector val
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ TopBytesRefAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ TopBytesRefAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ TopBytesRefAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ TopBytesRefAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ TopBytesRefAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ TopBytesRefAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopDoubleGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopDoubleGroupingAggregatorFunction.java
index 68bdee76e48aa..39abd06f5c6ef 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopDoubleGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopDoubleGroupingAggregatorFunction.java
@@ -13,8 +13,11 @@
import org.elasticsearch.compute.data.DoubleBlock;
import org.elasticsearch.compute.data.DoubleVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -75,6 +78,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -91,6 +109,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -102,28 +135,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, DoubleBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- TopDoubleAggregator.combine(state, groupId, values.getDouble(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ TopDoubleAggregator.combine(state, groupId, values.getDouble(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, DoubleVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, DoubleVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- TopDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ TopDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -144,7 +191,7 @@ private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values
}
}
- private void addRawInput(int positionOffset, IntBlock groups, DoubleVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -158,6 +205,97 @@ private void addRawInput(int positionOffset, IntBlock groups, DoubleVector value
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ TopDoubleAggregator.combine(state, groupId, values.getDouble(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ TopDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, DoubleBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ TopDoubleAggregator.combine(state, groupId, values.getDouble(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, DoubleVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ TopDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, DoubleBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ TopDoubleAggregator.combine(state, groupId, values.getDouble(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, DoubleVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ TopDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopFloatGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopFloatGroupingAggregatorFunction.java
index cf1063a02fcbf..1506849737876 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopFloatGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopFloatGroupingAggregatorFunction.java
@@ -13,8 +13,11 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.FloatBlock;
import org.elasticsearch.compute.data.FloatVector;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -75,6 +78,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -91,6 +109,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -102,28 +135,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, FloatBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- TopFloatAggregator.combine(state, groupId, values.getFloat(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ TopFloatAggregator.combine(state, groupId, values.getFloat(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, FloatVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, FloatVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- TopFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ TopFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, FloatBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -144,7 +191,7 @@ private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values)
}
}
- private void addRawInput(int positionOffset, IntBlock groups, FloatVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, FloatVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -158,6 +205,97 @@ private void addRawInput(int positionOffset, IntBlock groups, FloatVector values
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, FloatBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ TopFloatAggregator.combine(state, groupId, values.getFloat(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, FloatVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ TopFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, FloatBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ TopFloatAggregator.combine(state, groupId, values.getFloat(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, FloatVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ TopFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, FloatBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ TopFloatAggregator.combine(state, groupId, values.getFloat(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, FloatVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ TopFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopIntGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopIntGroupingAggregatorFunction.java
index 67fa432b87995..19742383aca53 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopIntGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopIntGroupingAggregatorFunction.java
@@ -11,8 +11,11 @@
import java.util.List;
import org.elasticsearch.compute.data.Block;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -73,6 +76,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -89,6 +107,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -100,28 +133,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, IntBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- TopIntAggregator.combine(state, groupId, values.getInt(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ TopIntAggregator.combine(state, groupId, values.getInt(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, IntVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, IntVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- TopIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ TopIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -142,7 +189,7 @@ private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
}
}
- private void addRawInput(int positionOffset, IntBlock groups, IntVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, IntVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -156,6 +203,97 @@ private void addRawInput(int positionOffset, IntBlock groups, IntVector values)
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, IntBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ TopIntAggregator.combine(state, groupId, values.getInt(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, IntVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ TopIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, IntBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ TopIntAggregator.combine(state, groupId, values.getInt(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, IntVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ TopIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, IntBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ TopIntAggregator.combine(state, groupId, values.getInt(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, IntVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ TopIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopIpGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopIpGroupingAggregatorFunction.java
index eb5631c68d173..8ae7295cd0ce7 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopIpGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopIpGroupingAggregatorFunction.java
@@ -14,8 +14,11 @@
import org.elasticsearch.compute.data.BytesRefBlock;
import org.elasticsearch.compute.data.BytesRefVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -76,6 +79,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -92,6 +110,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -103,30 +136,44 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, BytesRefBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- TopIpAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ TopIpAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, BytesRefVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- TopIpAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ TopIpAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -148,7 +195,7 @@ private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock valu
}
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefVector values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -163,6 +210,103 @@ private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector val
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ TopIpAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ TopIpAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ TopIpAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ TopIpAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ TopIpAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ TopIpAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopLongGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopLongGroupingAggregatorFunction.java
index 58b62c211a0b9..d07ac88a024f5 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopLongGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopLongGroupingAggregatorFunction.java
@@ -11,8 +11,11 @@
import java.util.List;
import org.elasticsearch.compute.data.Block;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -75,6 +78,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -91,6 +109,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -102,28 +135,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, LongBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- TopLongAggregator.combine(state, groupId, values.getLong(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ TopLongAggregator.combine(state, groupId, values.getLong(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, LongVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, LongVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- TopLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ TopLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, LongBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -144,7 +191,7 @@ private void addRawInput(int positionOffset, IntBlock groups, LongBlock values)
}
}
- private void addRawInput(int positionOffset, IntBlock groups, LongVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, LongVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -158,6 +205,97 @@ private void addRawInput(int positionOffset, IntBlock groups, LongVector values)
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, LongBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ TopLongAggregator.combine(state, groupId, values.getLong(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, LongVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ TopLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ TopLongAggregator.combine(state, groupId, values.getLong(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ TopLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, LongBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ TopLongAggregator.combine(state, groupId, values.getLong(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, LongVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ TopLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesBooleanGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesBooleanGroupingAggregatorFunction.java
index 772de15468ef3..e458d45ca5ef2 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesBooleanGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesBooleanGroupingAggregatorFunction.java
@@ -13,8 +13,11 @@
import org.elasticsearch.compute.data.BooleanBlock;
import org.elasticsearch.compute.data.BooleanVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -68,6 +71,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -84,6 +102,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -95,28 +128,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, BooleanBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, BooleanBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- ValuesBooleanAggregator.combine(state, groupId, values.getBoolean(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ ValuesBooleanAggregator.combine(state, groupId, values.getBoolean(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, BooleanVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, BooleanVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- ValuesBooleanAggregator.combine(state, groupId, values.getBoolean(groupPosition + positionOffset));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ ValuesBooleanAggregator.combine(state, groupId, values.getBoolean(groupPosition + positionOffset));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, BooleanBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, BooleanBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -137,7 +184,7 @@ private void addRawInput(int positionOffset, IntBlock groups, BooleanBlock value
}
}
- private void addRawInput(int positionOffset, IntBlock groups, BooleanVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, BooleanVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -151,6 +198,97 @@ private void addRawInput(int positionOffset, IntBlock groups, BooleanVector valu
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, BooleanBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ ValuesBooleanAggregator.combine(state, groupId, values.getBoolean(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, BooleanVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ ValuesBooleanAggregator.combine(state, groupId, values.getBoolean(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, BooleanBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ ValuesBooleanAggregator.combine(state, groupId, values.getBoolean(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, BooleanVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ ValuesBooleanAggregator.combine(state, groupId, values.getBoolean(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, BooleanBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ ValuesBooleanAggregator.combine(state, groupId, values.getBoolean(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, BooleanVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ ValuesBooleanAggregator.combine(state, groupId, values.getBoolean(groupPosition + positionOffset));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesBytesRefGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesBytesRefGroupingAggregatorFunction.java
index 93d060889d28f..502bc14e05ab4 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesBytesRefGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesBytesRefGroupingAggregatorFunction.java
@@ -14,8 +14,11 @@
import org.elasticsearch.compute.data.BytesRefBlock;
import org.elasticsearch.compute.data.BytesRefVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -69,6 +72,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -85,6 +103,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -96,30 +129,44 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, BytesRefBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- ValuesBytesRefAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ ValuesBytesRefAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, BytesRefVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- ValuesBytesRefAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ ValuesBytesRefAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -141,7 +188,7 @@ private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock valu
}
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefVector values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -156,6 +203,103 @@ private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector val
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ ValuesBytesRefAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ ValuesBytesRefAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ ValuesBytesRefAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ ValuesBytesRefAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ ValuesBytesRefAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ ValuesBytesRefAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesDoubleGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesDoubleGroupingAggregatorFunction.java
index 04984d5c0640a..228fdb337cad6 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesDoubleGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesDoubleGroupingAggregatorFunction.java
@@ -13,8 +13,11 @@
import org.elasticsearch.compute.data.DoubleBlock;
import org.elasticsearch.compute.data.DoubleVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -68,6 +71,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -84,6 +102,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -95,28 +128,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, DoubleBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- ValuesDoubleAggregator.combine(state, groupId, values.getDouble(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ ValuesDoubleAggregator.combine(state, groupId, values.getDouble(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, DoubleVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, DoubleVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- ValuesDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ ValuesDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -137,7 +184,7 @@ private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values
}
}
- private void addRawInput(int positionOffset, IntBlock groups, DoubleVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -151,6 +198,97 @@ private void addRawInput(int positionOffset, IntBlock groups, DoubleVector value
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ ValuesDoubleAggregator.combine(state, groupId, values.getDouble(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ ValuesDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, DoubleBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ ValuesDoubleAggregator.combine(state, groupId, values.getDouble(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, DoubleVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ ValuesDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, DoubleBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ ValuesDoubleAggregator.combine(state, groupId, values.getDouble(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, DoubleVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ ValuesDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesFloatGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesFloatGroupingAggregatorFunction.java
index 1848b9e4f141b..49a429058c1f8 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesFloatGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesFloatGroupingAggregatorFunction.java
@@ -13,8 +13,11 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.FloatBlock;
import org.elasticsearch.compute.data.FloatVector;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -68,6 +71,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -84,6 +102,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -95,28 +128,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, FloatBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- ValuesFloatAggregator.combine(state, groupId, values.getFloat(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ ValuesFloatAggregator.combine(state, groupId, values.getFloat(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, FloatVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, FloatVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- ValuesFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ ValuesFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, FloatBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -137,7 +184,7 @@ private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values)
}
}
- private void addRawInput(int positionOffset, IntBlock groups, FloatVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, FloatVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -151,6 +198,97 @@ private void addRawInput(int positionOffset, IntBlock groups, FloatVector values
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, FloatBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ ValuesFloatAggregator.combine(state, groupId, values.getFloat(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, FloatVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ ValuesFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, FloatBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ ValuesFloatAggregator.combine(state, groupId, values.getFloat(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, FloatVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ ValuesFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, FloatBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ ValuesFloatAggregator.combine(state, groupId, values.getFloat(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, FloatVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ ValuesFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesIntGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesIntGroupingAggregatorFunction.java
index f0878fb085e6a..a5065a9a108f8 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesIntGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesIntGroupingAggregatorFunction.java
@@ -11,8 +11,11 @@
import java.util.List;
import org.elasticsearch.compute.data.Block;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -66,6 +69,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -82,6 +100,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -93,28 +126,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, IntBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- ValuesIntAggregator.combine(state, groupId, values.getInt(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ ValuesIntAggregator.combine(state, groupId, values.getInt(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, IntVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, IntVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- ValuesIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ ValuesIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -135,7 +182,7 @@ private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
}
}
- private void addRawInput(int positionOffset, IntBlock groups, IntVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, IntVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -149,6 +196,97 @@ private void addRawInput(int positionOffset, IntBlock groups, IntVector values)
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, IntBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ ValuesIntAggregator.combine(state, groupId, values.getInt(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, IntVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ ValuesIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, IntBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ ValuesIntAggregator.combine(state, groupId, values.getInt(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, IntVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ ValuesIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, IntBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ ValuesIntAggregator.combine(state, groupId, values.getInt(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, IntVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ ValuesIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesLongGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesLongGroupingAggregatorFunction.java
index 00bd36cda2523..182552dbb1e9f 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesLongGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesLongGroupingAggregatorFunction.java
@@ -11,8 +11,11 @@
import java.util.List;
import org.elasticsearch.compute.data.Block;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -68,6 +71,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -84,6 +102,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -95,28 +128,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, LongBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- ValuesLongAggregator.combine(state, groupId, values.getLong(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ ValuesLongAggregator.combine(state, groupId, values.getLong(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, LongVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, LongVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- ValuesLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ ValuesLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, LongBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -137,7 +184,7 @@ private void addRawInput(int positionOffset, IntBlock groups, LongBlock values)
}
}
- private void addRawInput(int positionOffset, IntBlock groups, LongVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, LongVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -151,6 +198,97 @@ private void addRawInput(int positionOffset, IntBlock groups, LongVector values)
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, LongBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ ValuesLongAggregator.combine(state, groupId, values.getLong(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, LongVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ ValuesLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ ValuesLongAggregator.combine(state, groupId, values.getLong(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ ValuesLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, LongBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ ValuesLongAggregator.combine(state, groupId, values.getLong(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, LongVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ ValuesLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialCentroidCartesianPointDocValuesGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialCentroidCartesianPointDocValuesGroupingAggregatorFunction.java
index 9a6328f075bca..15be0ef05773a 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialCentroidCartesianPointDocValuesGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialCentroidCartesianPointDocValuesGroupingAggregatorFunction.java
@@ -17,8 +17,11 @@
import org.elasticsearch.compute.data.DoubleBlock;
import org.elasticsearch.compute.data.DoubleVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -78,6 +81,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -94,6 +112,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -105,28 +138,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, LongBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- SpatialCentroidCartesianPointDocValuesAggregator.combine(state, groupId, values.getLong(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialCentroidCartesianPointDocValuesAggregator.combine(state, groupId, values.getLong(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, LongVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, LongVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- SpatialCentroidCartesianPointDocValuesAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ SpatialCentroidCartesianPointDocValuesAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, LongBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -147,7 +194,7 @@ private void addRawInput(int positionOffset, IntBlock groups, LongBlock values)
}
}
- private void addRawInput(int positionOffset, IntBlock groups, LongVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, LongVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -161,6 +208,97 @@ private void addRawInput(int positionOffset, IntBlock groups, LongVector values)
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, LongBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialCentroidCartesianPointDocValuesAggregator.combine(state, groupId, values.getLong(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, LongVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ SpatialCentroidCartesianPointDocValuesAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialCentroidCartesianPointDocValuesAggregator.combine(state, groupId, values.getLong(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ SpatialCentroidCartesianPointDocValuesAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, LongBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialCentroidCartesianPointDocValuesAggregator.combine(state, groupId, values.getLong(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, LongVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ SpatialCentroidCartesianPointDocValuesAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialCentroidCartesianPointSourceValuesGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialCentroidCartesianPointSourceValuesGroupingAggregatorFunction.java
index 1681b1a210d3c..2852605288a04 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialCentroidCartesianPointSourceValuesGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialCentroidCartesianPointSourceValuesGroupingAggregatorFunction.java
@@ -20,8 +20,11 @@
import org.elasticsearch.compute.data.DoubleBlock;
import org.elasticsearch.compute.data.DoubleVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -81,6 +84,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -97,6 +115,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -108,30 +141,44 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, BytesRefBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- SpatialCentroidCartesianPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialCentroidCartesianPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, BytesRefVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- SpatialCentroidCartesianPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ SpatialCentroidCartesianPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -153,7 +200,7 @@ private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock valu
}
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefVector values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -168,6 +215,103 @@ private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector val
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialCentroidCartesianPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ SpatialCentroidCartesianPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialCentroidCartesianPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ SpatialCentroidCartesianPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialCentroidCartesianPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ SpatialCentroidCartesianPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialCentroidGeoPointDocValuesGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialCentroidGeoPointDocValuesGroupingAggregatorFunction.java
index 36413308e967f..a8eb1fdad16bb 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialCentroidGeoPointDocValuesGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialCentroidGeoPointDocValuesGroupingAggregatorFunction.java
@@ -17,8 +17,11 @@
import org.elasticsearch.compute.data.DoubleBlock;
import org.elasticsearch.compute.data.DoubleVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -78,6 +81,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -94,6 +112,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -105,28 +138,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, LongBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- SpatialCentroidGeoPointDocValuesAggregator.combine(state, groupId, values.getLong(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialCentroidGeoPointDocValuesAggregator.combine(state, groupId, values.getLong(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, LongVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, LongVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- SpatialCentroidGeoPointDocValuesAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ SpatialCentroidGeoPointDocValuesAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, LongBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -147,7 +194,7 @@ private void addRawInput(int positionOffset, IntBlock groups, LongBlock values)
}
}
- private void addRawInput(int positionOffset, IntBlock groups, LongVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, LongVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -161,6 +208,97 @@ private void addRawInput(int positionOffset, IntBlock groups, LongVector values)
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, LongBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialCentroidGeoPointDocValuesAggregator.combine(state, groupId, values.getLong(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, LongVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ SpatialCentroidGeoPointDocValuesAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialCentroidGeoPointDocValuesAggregator.combine(state, groupId, values.getLong(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ SpatialCentroidGeoPointDocValuesAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, LongBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialCentroidGeoPointDocValuesAggregator.combine(state, groupId, values.getLong(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, LongVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ SpatialCentroidGeoPointDocValuesAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialCentroidGeoPointSourceValuesGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialCentroidGeoPointSourceValuesGroupingAggregatorFunction.java
index 935dd8f56887a..c2fda53aa585a 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialCentroidGeoPointSourceValuesGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialCentroidGeoPointSourceValuesGroupingAggregatorFunction.java
@@ -20,8 +20,11 @@
import org.elasticsearch.compute.data.DoubleBlock;
import org.elasticsearch.compute.data.DoubleVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -81,6 +84,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -97,6 +115,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -108,30 +141,44 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, BytesRefBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- SpatialCentroidGeoPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialCentroidGeoPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, BytesRefVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- SpatialCentroidGeoPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ SpatialCentroidGeoPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -153,7 +200,7 @@ private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock valu
}
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefVector values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -168,6 +215,103 @@ private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector val
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialCentroidGeoPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ SpatialCentroidGeoPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialCentroidGeoPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ SpatialCentroidGeoPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialCentroidGeoPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ SpatialCentroidGeoPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentCartesianPointDocValuesGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentCartesianPointDocValuesGroupingAggregatorFunction.java
index 8a9807be22ef5..d593273a6064e 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentCartesianPointDocValuesGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentCartesianPointDocValuesGroupingAggregatorFunction.java
@@ -15,8 +15,11 @@
import org.elasticsearch.compute.aggregation.SeenGroupIds;
import org.elasticsearch.compute.data.Block;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -75,6 +78,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -91,6 +109,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -102,28 +135,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, LongBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- SpatialExtentCartesianPointDocValuesAggregator.combine(state, groupId, values.getLong(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialExtentCartesianPointDocValuesAggregator.combine(state, groupId, values.getLong(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, LongVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, LongVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- SpatialExtentCartesianPointDocValuesAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ SpatialExtentCartesianPointDocValuesAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, LongBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -144,7 +191,7 @@ private void addRawInput(int positionOffset, IntBlock groups, LongBlock values)
}
}
- private void addRawInput(int positionOffset, IntBlock groups, LongVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, LongVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -158,6 +205,97 @@ private void addRawInput(int positionOffset, IntBlock groups, LongVector values)
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, LongBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialExtentCartesianPointDocValuesAggregator.combine(state, groupId, values.getLong(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, LongVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ SpatialExtentCartesianPointDocValuesAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialExtentCartesianPointDocValuesAggregator.combine(state, groupId, values.getLong(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ SpatialExtentCartesianPointDocValuesAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, LongBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialExtentCartesianPointDocValuesAggregator.combine(state, groupId, values.getLong(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, LongVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ SpatialExtentCartesianPointDocValuesAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentCartesianPointSourceValuesGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentCartesianPointSourceValuesGroupingAggregatorFunction.java
index 49198bbd74c69..723bb68703583 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentCartesianPointSourceValuesGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentCartesianPointSourceValuesGroupingAggregatorFunction.java
@@ -18,8 +18,11 @@
import org.elasticsearch.compute.data.BytesRefBlock;
import org.elasticsearch.compute.data.BytesRefVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -76,6 +79,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -92,6 +110,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -103,30 +136,44 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, BytesRefBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- SpatialExtentCartesianPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialExtentCartesianPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, BytesRefVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- SpatialExtentCartesianPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ SpatialExtentCartesianPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -148,7 +195,7 @@ private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock valu
}
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefVector values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -163,6 +210,103 @@ private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector val
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialExtentCartesianPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ SpatialExtentCartesianPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialExtentCartesianPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ SpatialExtentCartesianPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialExtentCartesianPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ SpatialExtentCartesianPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentCartesianShapeDocValuesGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentCartesianShapeDocValuesGroupingAggregatorFunction.java
index ca6b567810ae7..c885614b1efbc 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentCartesianShapeDocValuesGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentCartesianShapeDocValuesGroupingAggregatorFunction.java
@@ -15,8 +15,11 @@
import org.elasticsearch.compute.aggregation.SeenGroupIds;
import org.elasticsearch.compute.data.Block;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -73,6 +76,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -89,6 +107,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -100,27 +133,34 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, IntBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- int[] valuesArray = new int[valuesEnd - valuesStart];
- for (int v = valuesStart; v < valuesEnd; v++) {
- valuesArray[v-valuesStart] = values.getInt(v);
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ int[] valuesArray = new int[valuesEnd - valuesStart];
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ valuesArray[v-valuesStart] = values.getInt(v);
+ }
+ SpatialExtentCartesianShapeDocValuesAggregator.combine(state, groupId, valuesArray);
}
- SpatialExtentCartesianShapeDocValuesAggregator.combine(state, groupId, valuesArray);
}
}
- private void addRawInput(int positionOffset, IntVector groups, IntVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, IntVector values) {
// This type does not support vectors because all values are multi-valued
}
- private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -143,7 +183,81 @@ private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
}
}
- private void addRawInput(int positionOffset, IntBlock groups, IntVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, IntVector values) {
+ // This type does not support vectors because all values are multi-valued
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, IntBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ int[] valuesArray = new int[valuesEnd - valuesStart];
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ valuesArray[v-valuesStart] = values.getInt(v);
+ }
+ SpatialExtentCartesianShapeDocValuesAggregator.combine(state, groupId, valuesArray);
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, IntVector values) {
+ // This type does not support vectors because all values are multi-valued
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, IntBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ int[] valuesArray = new int[valuesEnd - valuesStart];
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ valuesArray[v-valuesStart] = values.getInt(v);
+ }
+ SpatialExtentCartesianShapeDocValuesAggregator.combine(state, groupId, valuesArray);
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, IntVector values) {
+ // This type does not support vectors because all values are multi-valued
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, IntBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ int[] valuesArray = new int[valuesEnd - valuesStart];
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ valuesArray[v-valuesStart] = values.getInt(v);
+ }
+ SpatialExtentCartesianShapeDocValuesAggregator.combine(state, groupId, valuesArray);
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, IntVector values) {
// This type does not support vectors because all values are multi-valued
}
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentCartesianShapeSourceValuesGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentCartesianShapeSourceValuesGroupingAggregatorFunction.java
index bf7e95c4f040f..d4a392a24b87b 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentCartesianShapeSourceValuesGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentCartesianShapeSourceValuesGroupingAggregatorFunction.java
@@ -18,8 +18,11 @@
import org.elasticsearch.compute.data.BytesRefBlock;
import org.elasticsearch.compute.data.BytesRefVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -76,6 +79,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -92,6 +110,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -103,30 +136,44 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, BytesRefBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- SpatialExtentCartesianShapeSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialExtentCartesianShapeSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, BytesRefVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- SpatialExtentCartesianShapeSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ SpatialExtentCartesianShapeSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -148,7 +195,7 @@ private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock valu
}
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefVector values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -163,6 +210,103 @@ private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector val
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialExtentCartesianShapeSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ SpatialExtentCartesianShapeSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialExtentCartesianShapeSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ SpatialExtentCartesianShapeSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialExtentCartesianShapeSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ SpatialExtentCartesianShapeSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentGeoPointDocValuesGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentGeoPointDocValuesGroupingAggregatorFunction.java
index 71abb7296232a..943ca59c85398 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentGeoPointDocValuesGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentGeoPointDocValuesGroupingAggregatorFunction.java
@@ -15,8 +15,11 @@
import org.elasticsearch.compute.aggregation.SeenGroupIds;
import org.elasticsearch.compute.data.Block;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -77,6 +80,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -93,6 +111,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -104,28 +137,42 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, LongBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- SpatialExtentGeoPointDocValuesAggregator.combine(state, groupId, values.getLong(v));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialExtentGeoPointDocValuesAggregator.combine(state, groupId, values.getLong(v));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, LongVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, LongVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- SpatialExtentGeoPointDocValuesAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ SpatialExtentGeoPointDocValuesAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, LongBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -146,7 +193,7 @@ private void addRawInput(int positionOffset, IntBlock groups, LongBlock values)
}
}
- private void addRawInput(int positionOffset, IntBlock groups, LongVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, LongVector values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -160,6 +207,97 @@ private void addRawInput(int positionOffset, IntBlock groups, LongVector values)
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, LongBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialExtentGeoPointDocValuesAggregator.combine(state, groupId, values.getLong(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, LongVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ SpatialExtentGeoPointDocValuesAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialExtentGeoPointDocValuesAggregator.combine(state, groupId, values.getLong(v));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ SpatialExtentGeoPointDocValuesAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, LongBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialExtentGeoPointDocValuesAggregator.combine(state, groupId, values.getLong(v));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, LongVector values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ SpatialExtentGeoPointDocValuesAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentGeoPointSourceValuesGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentGeoPointSourceValuesGroupingAggregatorFunction.java
index 437c1f017ebc9..e482c48731ec9 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentGeoPointSourceValuesGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentGeoPointSourceValuesGroupingAggregatorFunction.java
@@ -18,8 +18,11 @@
import org.elasticsearch.compute.data.BytesRefBlock;
import org.elasticsearch.compute.data.BytesRefVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -78,6 +81,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -94,6 +112,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -105,30 +138,44 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, BytesRefBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- SpatialExtentGeoPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialExtentGeoPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, BytesRefVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- SpatialExtentGeoPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ SpatialExtentGeoPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -150,7 +197,7 @@ private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock valu
}
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefVector values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -165,6 +212,103 @@ private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector val
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialExtentGeoPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ SpatialExtentGeoPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialExtentGeoPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ SpatialExtentGeoPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialExtentGeoPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ SpatialExtentGeoPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentGeoShapeDocValuesGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentGeoShapeDocValuesGroupingAggregatorFunction.java
index b0a01d268280c..e5fca370f7717 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentGeoShapeDocValuesGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentGeoShapeDocValuesGroupingAggregatorFunction.java
@@ -15,8 +15,11 @@
import org.elasticsearch.compute.aggregation.SeenGroupIds;
import org.elasticsearch.compute.data.Block;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -75,6 +78,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -91,6 +109,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -102,27 +135,34 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, IntBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- int[] valuesArray = new int[valuesEnd - valuesStart];
- for (int v = valuesStart; v < valuesEnd; v++) {
- valuesArray[v-valuesStart] = values.getInt(v);
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ int[] valuesArray = new int[valuesEnd - valuesStart];
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ valuesArray[v-valuesStart] = values.getInt(v);
+ }
+ SpatialExtentGeoShapeDocValuesAggregator.combine(state, groupId, valuesArray);
}
- SpatialExtentGeoShapeDocValuesAggregator.combine(state, groupId, valuesArray);
}
}
- private void addRawInput(int positionOffset, IntVector groups, IntVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, IntVector values) {
// This type does not support vectors because all values are multi-valued
}
- private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
@@ -145,7 +185,81 @@ private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
}
}
- private void addRawInput(int positionOffset, IntBlock groups, IntVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, IntVector values) {
+ // This type does not support vectors because all values are multi-valued
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, IntBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ int[] valuesArray = new int[valuesEnd - valuesStart];
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ valuesArray[v-valuesStart] = values.getInt(v);
+ }
+ SpatialExtentGeoShapeDocValuesAggregator.combine(state, groupId, valuesArray);
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, IntVector values) {
+ // This type does not support vectors because all values are multi-valued
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, IntBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ int[] valuesArray = new int[valuesEnd - valuesStart];
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ valuesArray[v-valuesStart] = values.getInt(v);
+ }
+ SpatialExtentGeoShapeDocValuesAggregator.combine(state, groupId, valuesArray);
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, IntVector values) {
+ // This type does not support vectors because all values are multi-valued
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, IntBlock values) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ int[] valuesArray = new int[valuesEnd - valuesStart];
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ valuesArray[v-valuesStart] = values.getInt(v);
+ }
+ SpatialExtentGeoShapeDocValuesAggregator.combine(state, groupId, valuesArray);
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, IntVector values) {
// This type does not support vectors because all values are multi-valued
}
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentGeoShapeSourceValuesGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentGeoShapeSourceValuesGroupingAggregatorFunction.java
index 029e935f4765e..e53fa3fe29ac8 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentGeoShapeSourceValuesGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentGeoShapeSourceValuesGroupingAggregatorFunction.java
@@ -18,8 +18,11 @@
import org.elasticsearch.compute.data.BytesRefBlock;
import org.elasticsearch.compute.data.BytesRefVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -78,6 +81,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -94,6 +112,21 @@ public void add(int positionOffset, IntBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesVector);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -105,30 +138,44 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntVector groups, BytesRefBlock values) {
+ private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- if (values.isNull(groupPosition + positionOffset)) {
+ if (groups.isNull(groupPosition)) {
continue;
}
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- SpatialExtentGeoShapeSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialExtentGeoShapeSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
}
}
}
- private void addRawInput(int positionOffset, IntVector groups, BytesRefVector values) {
+ private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- int groupId = groups.getInt(groupPosition);
- SpatialExtentGeoShapeSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ SpatialExtentGeoShapeSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
}
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -150,7 +197,7 @@ private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock valu
}
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefVector values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -165,6 +212,103 @@ private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector val
}
}
+ private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialExtentGeoShapeSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ SpatialExtentGeoShapeSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialExtentGeoShapeSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = groups.getInt(g);
+ SpatialExtentGeoShapeSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, BytesRefBlock values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ if (values.isNull(groupPosition + positionOffset)) {
+ continue;
+ }
+ int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
+ int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
+ for (int v = valuesStart; v < valuesEnd; v++) {
+ SpatialExtentGeoShapeSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntVector groups, BytesRefVector values) {
+ BytesRef scratch = new BytesRef();
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ int groupId = groups.getInt(groupPosition);
+ SpatialExtentGeoShapeSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
+ }
+ }
+
@Override
public void selectedMayContainUnseenGroups(SeenGroupIds seenGroupIds) {
state.enableGroupIdTracking(seenGroupIds);
diff --git a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/GroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/GroupingAggregatorFunction.java
index d5d432655620f..e82a53994b6fb 100644
--- a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/GroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/GroupingAggregatorFunction.java
@@ -8,8 +8,11 @@
package org.elasticsearch.compute.aggregation;
import org.elasticsearch.compute.data.Block;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.data.Vector;
import org.elasticsearch.core.Releasable;
@@ -55,6 +58,36 @@ interface AddInput extends Releasable {
*/
void add(int positionOffset, IntBlock groupIds);
+ /**
+ * Implementation of {@link #add(int, IntBlock)} for a specific type of block.
+ *
+ * If not implemented, defaults to the generic implementation.
+ *
+ */
+ default void add(int positionOffset, IntArrayBlock groupIds) {
+ add(positionOffset, (IntBlock) groupIds);
+ }
+
+ /**
+ * Implementation of {@link #add(int, IntBlock)} for a specific type of block.
+ *
+ * If not implemented, defaults to the generic implementation.
+ *
+ */
+ default void add(int positionOffset, IntVectorBlock groupIds) {
+ add(positionOffset, (IntBlock) groupIds);
+ }
+
+ /**
+ * Implementation of {@link #add(int, IntBlock)} for a specific type of block.
+ *
+ * If not implemented, defaults to the generic implementation.
+ *
+ */
+ default void add(int positionOffset, IntBigArrayBlock groupIds) {
+ add(positionOffset, (IntBlock) groupIds);
+ }
+
/**
* Send a batch of group ids to the aggregator. The {@code groupIds}
* may be offset from the start of the block to allow for sending chunks
diff --git a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/data/X-ArrayBlock.java.st b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/data/X-ArrayBlock.java.st
index 707b19165bb3b..b8c8107d7aa4d 100644
--- a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/data/X-ArrayBlock.java.st
+++ b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/data/X-ArrayBlock.java.st
@@ -31,7 +31,7 @@ $if(BytesRef)$
$endif$
* This class is generated. Edit {@code X-ArrayBlock.java.st} instead.
*/
-final class $Type$ArrayBlock extends AbstractArrayBlock implements $Type$Block {
+public final class $Type$ArrayBlock extends AbstractArrayBlock implements $Type$Block {
static final long BASE_RAM_BYTES_USED = RamUsageEstimator.shallowSizeOfInstance($Type$ArrayBlock.class);
From ff01cdee91adb542bec4a9f3cbdff8e4b1808b18 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Iv=C3=A1n=20Cea=20Fontenla?=
Date: Wed, 30 Apr 2025 13:24:12 +0200
Subject: [PATCH 02/11] Call the specific add() methods for eacj block type
(cherry picked from commit 5176663f4317322680f6f2776f7cbaf87f22d016)
---
.../GroupingAggregatorFunction.java | 20 +++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/GroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/GroupingAggregatorFunction.java
index e82a53994b6fb..8347fa1a6e8cc 100644
--- a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/GroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/GroupingAggregatorFunction.java
@@ -88,6 +88,26 @@ default void add(int positionOffset, IntBigArrayBlock groupIds) {
add(positionOffset, (IntBlock) groupIds);
}
+ /**
+ * Calls an {@code add()} implementation given the specific {@code groupIds} block type.
+ */
+ default void addSpecific(int positionOffset, IntBlock groupIds) {
+ switch (groupIds) {
+ case IntVectorBlock b:
+ add(positionOffset, b);
+ break;
+ case IntArrayBlock b:
+ add(positionOffset, b);
+ break;
+ case IntBigArrayBlock b:
+ add(positionOffset, b);
+ break;
+ default:
+ add(positionOffset, groupIds);
+ break;
+ }
+ }
+
/**
* Send a batch of group ids to the aggregator. The {@code groupIds}
* may be offset from the start of the block to allow for sending chunks
From fc54ebb32380449d08b460ea9f940fb9c2ae4c08 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Iv=C3=A1n=20Cea=20Fontenla?=
Date: Wed, 30 Apr 2025 13:41:17 +0200
Subject: [PATCH 03/11] Implement custom add in HashAggregationOperator
(cherry picked from commit fb670bdbbcf0ad4e29e22a4e5e48853775d1a87c)
---
.../operator/HashAggregationOperator.java | 27 +++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/operator/HashAggregationOperator.java b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/operator/HashAggregationOperator.java
index 75d5a5bc51323..7d3caa2a3dcff 100644
--- a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/operator/HashAggregationOperator.java
+++ b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/operator/HashAggregationOperator.java
@@ -20,8 +20,11 @@
import org.elasticsearch.compute.aggregation.GroupingAggregatorFunction;
import org.elasticsearch.compute.aggregation.blockhash.BlockHash;
import org.elasticsearch.compute.data.Block;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.core.Releasables;
import org.elasticsearch.core.TimeValue;
@@ -158,6 +161,30 @@ public void add(int positionOffset, IntBlock groupIds) {
}
}
+ @Override
+ public void add(int positionOffset, IntVectorBlock groupIds) {
+ IntVector groupIdsVector = groupIds.asVector();
+ add(positionOffset, groupIdsVector);
+ }
+
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ startAggEndHash();
+ for (GroupingAggregatorFunction.AddInput p : prepared) {
+ p.add(positionOffset, groupIds);
+ }
+ end();
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ startAggEndHash();
+ for (GroupingAggregatorFunction.AddInput p : prepared) {
+ p.add(positionOffset, groupIds);
+ }
+ end();
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
startAggEndHash();
From ac355240e3a96b5cc42d3d6c4ce4ad14bd30cef6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Iv=C3=A1n=20Cea=20Fontenla?=
Date: Wed, 30 Apr 2025 16:49:36 +0200
Subject: [PATCH 04/11] Migrated everything to the new add() calls
---
.../gen/GroupingAggregatorImplementer.java | 4 +-
...inctBooleanGroupingAggregatorFunction.java | 92 -----------------
...nctBytesRefGroupingAggregatorFunction.java | 96 ------------------
...tinctDoubleGroupingAggregatorFunction.java | 92 -----------------
...stinctFloatGroupingAggregatorFunction.java | 92 -----------------
...DistinctIntGroupingAggregatorFunction.java | 91 -----------------
...istinctLongGroupingAggregatorFunction.java | 92 -----------------
...rTimeDoubleGroupingAggregatorFunction.java | 98 -------------------
...erTimeFloatGroupingAggregatorFunction.java | 98 -------------------
...OverTimeIntGroupingAggregatorFunction.java | 97 ------------------
...verTimeLongGroupingAggregatorFunction.java | 98 -------------------
.../MaxBooleanGroupingAggregatorFunction.java | 92 -----------------
...MaxBytesRefGroupingAggregatorFunction.java | 96 ------------------
.../MaxDoubleGroupingAggregatorFunction.java | 92 -----------------
.../MaxFloatGroupingAggregatorFunction.java | 92 -----------------
.../MaxIntGroupingAggregatorFunction.java | 91 -----------------
.../MaxIpGroupingAggregatorFunction.java | 96 ------------------
.../MaxLongGroupingAggregatorFunction.java | 92 -----------------
...ationDoubleGroupingAggregatorFunction.java | 92 -----------------
...iationFloatGroupingAggregatorFunction.java | 92 -----------------
...eviationIntGroupingAggregatorFunction.java | 91 -----------------
...viationLongGroupingAggregatorFunction.java | 92 -----------------
.../MinBooleanGroupingAggregatorFunction.java | 92 -----------------
...MinBytesRefGroupingAggregatorFunction.java | 96 ------------------
.../MinDoubleGroupingAggregatorFunction.java | 92 -----------------
.../MinFloatGroupingAggregatorFunction.java | 92 -----------------
.../MinIntGroupingAggregatorFunction.java | 91 -----------------
.../MinIpGroupingAggregatorFunction.java | 96 ------------------
.../MinLongGroupingAggregatorFunction.java | 92 -----------------
...ntileDoubleGroupingAggregatorFunction.java | 92 -----------------
...entileFloatGroupingAggregatorFunction.java | 92 -----------------
...rcentileIntGroupingAggregatorFunction.java | 91 -----------------
...centileLongGroupingAggregatorFunction.java | 92 -----------------
.../RateDoubleGroupingAggregatorFunction.java | 97 ------------------
.../RateFloatGroupingAggregatorFunction.java | 97 ------------------
.../RateIntGroupingAggregatorFunction.java | 97 ------------------
.../RateLongGroupingAggregatorFunction.java | 97 ------------------
...tdDevDoubleGroupingAggregatorFunction.java | 92 -----------------
...StdDevFloatGroupingAggregatorFunction.java | 92 -----------------
.../StdDevIntGroupingAggregatorFunction.java | 91 -----------------
.../StdDevLongGroupingAggregatorFunction.java | 92 -----------------
.../SumDoubleGroupingAggregatorFunction.java | 92 -----------------
.../SumFloatGroupingAggregatorFunction.java | 92 -----------------
.../SumIntGroupingAggregatorFunction.java | 91 -----------------
.../SumLongGroupingAggregatorFunction.java | 92 -----------------
.../TopBooleanGroupingAggregatorFunction.java | 92 -----------------
...TopBytesRefGroupingAggregatorFunction.java | 96 ------------------
.../TopDoubleGroupingAggregatorFunction.java | 92 -----------------
.../TopFloatGroupingAggregatorFunction.java | 92 -----------------
.../TopIntGroupingAggregatorFunction.java | 91 -----------------
.../TopIpGroupingAggregatorFunction.java | 96 ------------------
.../TopLongGroupingAggregatorFunction.java | 92 -----------------
...luesBooleanGroupingAggregatorFunction.java | 92 -----------------
...uesBytesRefGroupingAggregatorFunction.java | 96 ------------------
...aluesDoubleGroupingAggregatorFunction.java | 92 -----------------
...ValuesFloatGroupingAggregatorFunction.java | 92 -----------------
.../ValuesIntGroupingAggregatorFunction.java | 91 -----------------
.../ValuesLongGroupingAggregatorFunction.java | 92 -----------------
...ntDocValuesGroupingAggregatorFunction.java | 92 -----------------
...ourceValuesGroupingAggregatorFunction.java | 96 ------------------
...ntDocValuesGroupingAggregatorFunction.java | 92 -----------------
...ourceValuesGroupingAggregatorFunction.java | 96 ------------------
...ntDocValuesGroupingAggregatorFunction.java | 91 -----------------
...ourceValuesGroupingAggregatorFunction.java | 95 ------------------
...peDocValuesGroupingAggregatorFunction.java | 75 --------------
...ourceValuesGroupingAggregatorFunction.java | 95 ------------------
...ntDocValuesGroupingAggregatorFunction.java | 91 -----------------
...ourceValuesGroupingAggregatorFunction.java | 95 ------------------
...peDocValuesGroupingAggregatorFunction.java | 75 --------------
...ourceValuesGroupingAggregatorFunction.java | 95 ------------------
.../CountGroupingAggregatorFunction.java | 56 ++++++++++-
.../FilteredGroupingAggregatorFunction.java | 23 +++--
...FromPartialGroupingAggregatorFunction.java | 12 +++
.../aggregation/GroupingAggregator.java | 11 +++
.../GroupingAggregatorFunction.java | 60 ++++--------
.../table/BlockHashRowInTableLookup.java | 20 +++-
.../compute/data/ConstantNullBlock.java | 2 +-
.../operator/HashAggregationOperator.java | 20 ----
78 files changed, 133 insertions(+), 6473 deletions(-)
diff --git a/x-pack/plugin/esql/compute/gen/src/main/java/org/elasticsearch/compute/gen/GroupingAggregatorImplementer.java b/x-pack/plugin/esql/compute/gen/src/main/java/org/elasticsearch/compute/gen/GroupingAggregatorImplementer.java
index 41947a39aed44..5149042fa5254 100644
--- a/x-pack/plugin/esql/compute/gen/src/main/java/org/elasticsearch/compute/gen/GroupingAggregatorImplementer.java
+++ b/x-pack/plugin/esql/compute/gen/src/main/java/org/elasticsearch/compute/gen/GroupingAggregatorImplementer.java
@@ -56,9 +56,7 @@
import static org.elasticsearch.compute.gen.Types.INTERMEDIATE_STATE_DESC;
import static org.elasticsearch.compute.gen.Types.INT_ARRAY_BLOCK;
import static org.elasticsearch.compute.gen.Types.INT_BIG_ARRAY_BLOCK;
-import static org.elasticsearch.compute.gen.Types.INT_BLOCK;
import static org.elasticsearch.compute.gen.Types.INT_VECTOR;
-import static org.elasticsearch.compute.gen.Types.INT_VECTOR_BLOCK;
import static org.elasticsearch.compute.gen.Types.LIST_AGG_FUNC_DESC;
import static org.elasticsearch.compute.gen.Types.LIST_INTEGER;
import static org.elasticsearch.compute.gen.Types.LONG_BLOCK;
@@ -80,7 +78,7 @@
*/
public class GroupingAggregatorImplementer {
private static final List GROUP_IDS_CLASSES =
- List.of(INT_BLOCK, INT_ARRAY_BLOCK, INT_VECTOR_BLOCK, INT_BIG_ARRAY_BLOCK, INT_VECTOR);
+ List.of(INT_ARRAY_BLOCK, INT_BIG_ARRAY_BLOCK, INT_VECTOR);
private final TypeElement declarationType;
private final List warnExceptions;
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctBooleanGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctBooleanGroupingAggregatorFunction.java
index 5d0bde1045e29..4fce90e84add6 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctBooleanGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctBooleanGroupingAggregatorFunction.java
@@ -15,9 +15,7 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -67,21 +65,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -98,21 +86,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -129,41 +107,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, BooleanBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- CountDistinctBooleanAggregator.combine(state, groupId, values.getBoolean(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, BooleanVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- CountDistinctBooleanAggregator.combine(state, groupId, values.getBoolean(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, BooleanBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -199,41 +142,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, BooleanVector
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, BooleanBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- CountDistinctBooleanAggregator.combine(state, groupId, values.getBoolean(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, BooleanVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- CountDistinctBooleanAggregator.combine(state, groupId, values.getBoolean(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, BooleanBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctBytesRefGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctBytesRefGroupingAggregatorFunction.java
index c715adea5b43a..2d005a17dd182 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctBytesRefGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctBytesRefGroupingAggregatorFunction.java
@@ -16,9 +16,7 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -70,21 +68,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -101,21 +89,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -132,43 +110,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- CountDistinctBytesRefAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- CountDistinctBytesRefAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
@@ -206,43 +147,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefVecto
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefBlock values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- CountDistinctBytesRefAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefVector values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- CountDistinctBytesRefAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctDoubleGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctDoubleGroupingAggregatorFunction.java
index 9df957d57c593..0f0dfd4fa5b2c 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctDoubleGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctDoubleGroupingAggregatorFunction.java
@@ -18,9 +18,7 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -72,21 +70,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -103,21 +91,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -134,41 +112,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- CountDistinctDoubleAggregator.combine(state, groupId, values.getDouble(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, DoubleVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- CountDistinctDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -204,41 +147,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleVector
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- CountDistinctDoubleAggregator.combine(state, groupId, values.getDouble(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- CountDistinctDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, DoubleBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctFloatGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctFloatGroupingAggregatorFunction.java
index 88b0f37ab722e..8e2fa1d71419a 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctFloatGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctFloatGroupingAggregatorFunction.java
@@ -18,9 +18,7 @@
import org.elasticsearch.compute.data.FloatVector;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -72,21 +70,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -103,21 +91,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -134,41 +112,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- CountDistinctFloatAggregator.combine(state, groupId, values.getFloat(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, FloatVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- CountDistinctFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, FloatBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -204,41 +147,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, FloatVector v
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, FloatBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- CountDistinctFloatAggregator.combine(state, groupId, values.getFloat(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, FloatVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- CountDistinctFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, FloatBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctIntGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctIntGroupingAggregatorFunction.java
index 735f1e262f4b3..08768acfa5261 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctIntGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctIntGroupingAggregatorFunction.java
@@ -18,7 +18,6 @@
import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -70,21 +69,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -101,21 +90,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -132,41 +111,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- CountDistinctIntAggregator.combine(state, groupId, values.getInt(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, IntVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- CountDistinctIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -202,41 +146,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, IntVector val
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, IntBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- CountDistinctIntAggregator.combine(state, groupId, values.getInt(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, IntVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- CountDistinctIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctLongGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctLongGroupingAggregatorFunction.java
index 861d6d21c6491..0b1caa1c3727c 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctLongGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/CountDistinctLongGroupingAggregatorFunction.java
@@ -16,9 +16,7 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -72,21 +70,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -103,21 +91,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -134,41 +112,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, LongBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- CountDistinctLongAggregator.combine(state, groupId, values.getLong(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, LongVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- CountDistinctLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -204,41 +147,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, LongVector va
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, LongBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- CountDistinctLongAggregator.combine(state, groupId, values.getLong(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, LongVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- CountDistinctLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/LastOverTimeDoubleGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/LastOverTimeDoubleGroupingAggregatorFunction.java
index a69d49e8ba8fe..8a32e5552dd1c 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/LastOverTimeDoubleGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/LastOverTimeDoubleGroupingAggregatorFunction.java
@@ -15,9 +15,7 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -74,21 +72,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
@@ -105,21 +93,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
@@ -136,44 +114,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values,
- LongVector timestamps) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- LastOverTimeDoubleAggregator.combine(state, groupId, timestamps.getLong(v), values.getDouble(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, DoubleVector values,
- LongVector timestamps) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- var valuePosition = groupPosition + positionOffset;
- LastOverTimeDoubleAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getDouble(valuePosition));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleBlock values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
@@ -212,44 +152,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleVector
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleBlock values,
- LongVector timestamps) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- LastOverTimeDoubleAggregator.combine(state, groupId, timestamps.getLong(v), values.getDouble(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleVector values,
- LongVector timestamps) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- var valuePosition = groupPosition + positionOffset;
- LastOverTimeDoubleAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getDouble(valuePosition));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, DoubleBlock values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/LastOverTimeFloatGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/LastOverTimeFloatGroupingAggregatorFunction.java
index 5d53c761b4848..250c5cd755a12 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/LastOverTimeFloatGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/LastOverTimeFloatGroupingAggregatorFunction.java
@@ -15,9 +15,7 @@
import org.elasticsearch.compute.data.FloatVector;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -74,21 +72,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
@@ -105,21 +93,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
@@ -136,44 +114,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values,
- LongVector timestamps) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- LastOverTimeFloatAggregator.combine(state, groupId, timestamps.getLong(v), values.getFloat(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, FloatVector values,
- LongVector timestamps) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- var valuePosition = groupPosition + positionOffset;
- LastOverTimeFloatAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getFloat(valuePosition));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, FloatBlock values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
@@ -212,44 +152,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, FloatVector v
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, FloatBlock values,
- LongVector timestamps) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- LastOverTimeFloatAggregator.combine(state, groupId, timestamps.getLong(v), values.getFloat(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, FloatVector values,
- LongVector timestamps) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- var valuePosition = groupPosition + positionOffset;
- LastOverTimeFloatAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getFloat(valuePosition));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, FloatBlock values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/LastOverTimeIntGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/LastOverTimeIntGroupingAggregatorFunction.java
index 015c1d456bd11..9b118c7dea9be 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/LastOverTimeIntGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/LastOverTimeIntGroupingAggregatorFunction.java
@@ -15,7 +15,6 @@
import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -72,21 +71,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
@@ -103,21 +92,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
@@ -134,44 +113,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, IntBlock values,
- LongVector timestamps) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- LastOverTimeIntAggregator.combine(state, groupId, timestamps.getLong(v), values.getInt(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, IntVector values,
- LongVector timestamps) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- var valuePosition = groupPosition + positionOffset;
- LastOverTimeIntAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getInt(valuePosition));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, IntBlock values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
@@ -210,44 +151,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, IntVector val
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, IntBlock values,
- LongVector timestamps) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- LastOverTimeIntAggregator.combine(state, groupId, timestamps.getLong(v), values.getInt(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, IntVector values,
- LongVector timestamps) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- var valuePosition = groupPosition + positionOffset;
- LastOverTimeIntAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getInt(valuePosition));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, IntBlock values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/LastOverTimeLongGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/LastOverTimeLongGroupingAggregatorFunction.java
index 8a939a8206e39..82bfc732969e5 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/LastOverTimeLongGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/LastOverTimeLongGroupingAggregatorFunction.java
@@ -13,9 +13,7 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -72,21 +70,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
@@ -103,21 +91,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
@@ -134,44 +112,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, LongBlock values,
- LongVector timestamps) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- LastOverTimeLongAggregator.combine(state, groupId, timestamps.getLong(v), values.getLong(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, LongVector values,
- LongVector timestamps) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- var valuePosition = groupPosition + positionOffset;
- LastOverTimeLongAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getLong(valuePosition));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, LongBlock values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
@@ -210,44 +150,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, LongVector va
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, LongBlock values,
- LongVector timestamps) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- LastOverTimeLongAggregator.combine(state, groupId, timestamps.getLong(v), values.getLong(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, LongVector values,
- LongVector timestamps) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- var valuePosition = groupPosition + positionOffset;
- LastOverTimeLongAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getLong(valuePosition));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongBlock values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxBooleanGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxBooleanGroupingAggregatorFunction.java
index 61f8c2306c44c..f7390f55bc52b 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxBooleanGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxBooleanGroupingAggregatorFunction.java
@@ -15,9 +15,7 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -67,21 +65,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -98,21 +86,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -129,41 +107,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, BooleanBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- state.set(groupId, MaxBooleanAggregator.combine(state.getOrDefault(groupId), values.getBoolean(v)));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, BooleanVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- state.set(groupId, MaxBooleanAggregator.combine(state.getOrDefault(groupId), values.getBoolean(groupPosition + positionOffset)));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, BooleanBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -199,41 +142,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, BooleanVector
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, BooleanBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- state.set(groupId, MaxBooleanAggregator.combine(state.getOrDefault(groupId), values.getBoolean(v)));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, BooleanVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- state.set(groupId, MaxBooleanAggregator.combine(state.getOrDefault(groupId), values.getBoolean(groupPosition + positionOffset)));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, BooleanBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxBytesRefGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxBytesRefGroupingAggregatorFunction.java
index d23d40f26573e..41f98d962bd2f 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxBytesRefGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxBytesRefGroupingAggregatorFunction.java
@@ -18,9 +18,7 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -70,21 +68,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -101,21 +89,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -132,43 +110,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- MaxBytesRefAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- MaxBytesRefAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
@@ -206,43 +147,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefVecto
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefBlock values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- MaxBytesRefAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefVector values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- MaxBytesRefAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxDoubleGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxDoubleGroupingAggregatorFunction.java
index f2c03e1be72c0..53273dad7c0f0 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxDoubleGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxDoubleGroupingAggregatorFunction.java
@@ -17,9 +17,7 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -69,21 +67,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -100,21 +88,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -131,41 +109,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- state.set(groupId, MaxDoubleAggregator.combine(state.getOrDefault(groupId), values.getDouble(v)));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, DoubleVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- state.set(groupId, MaxDoubleAggregator.combine(state.getOrDefault(groupId), values.getDouble(groupPosition + positionOffset)));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -201,41 +144,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleVector
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- state.set(groupId, MaxDoubleAggregator.combine(state.getOrDefault(groupId), values.getDouble(v)));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- state.set(groupId, MaxDoubleAggregator.combine(state.getOrDefault(groupId), values.getDouble(groupPosition + positionOffset)));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, DoubleBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxFloatGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxFloatGroupingAggregatorFunction.java
index fbca3791d98ef..49afaf3c7265d 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxFloatGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxFloatGroupingAggregatorFunction.java
@@ -17,9 +17,7 @@
import org.elasticsearch.compute.data.FloatVector;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -69,21 +67,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -100,21 +88,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -131,41 +109,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- state.set(groupId, MaxFloatAggregator.combine(state.getOrDefault(groupId), values.getFloat(v)));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, FloatVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- state.set(groupId, MaxFloatAggregator.combine(state.getOrDefault(groupId), values.getFloat(groupPosition + positionOffset)));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, FloatBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -201,41 +144,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, FloatVector v
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, FloatBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- state.set(groupId, MaxFloatAggregator.combine(state.getOrDefault(groupId), values.getFloat(v)));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, FloatVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- state.set(groupId, MaxFloatAggregator.combine(state.getOrDefault(groupId), values.getFloat(groupPosition + positionOffset)));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, FloatBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxIntGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxIntGroupingAggregatorFunction.java
index 18b69154dcffb..3d97bf9df5dd9 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxIntGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxIntGroupingAggregatorFunction.java
@@ -17,7 +17,6 @@
import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -67,21 +66,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -98,21 +87,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -129,41 +108,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- state.set(groupId, MaxIntAggregator.combine(state.getOrDefault(groupId), values.getInt(v)));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, IntVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- state.set(groupId, MaxIntAggregator.combine(state.getOrDefault(groupId), values.getInt(groupPosition + positionOffset)));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -199,41 +143,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, IntVector val
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, IntBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- state.set(groupId, MaxIntAggregator.combine(state.getOrDefault(groupId), values.getInt(v)));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, IntVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- state.set(groupId, MaxIntAggregator.combine(state.getOrDefault(groupId), values.getInt(groupPosition + positionOffset)));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxIpGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxIpGroupingAggregatorFunction.java
index 5e0f3bed949f9..fd38873655edd 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxIpGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxIpGroupingAggregatorFunction.java
@@ -18,9 +18,7 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -70,21 +68,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -101,21 +89,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -132,43 +110,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- MaxIpAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- MaxIpAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
@@ -206,43 +147,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefVecto
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefBlock values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- MaxIpAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefVector values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- MaxIpAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxLongGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxLongGroupingAggregatorFunction.java
index a48341a50bacc..fcaea869f84d4 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxLongGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MaxLongGroupingAggregatorFunction.java
@@ -15,9 +15,7 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -69,21 +67,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -100,21 +88,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -131,41 +109,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, LongBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- state.set(groupId, MaxLongAggregator.combine(state.getOrDefault(groupId), values.getLong(v)));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, LongVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- state.set(groupId, MaxLongAggregator.combine(state.getOrDefault(groupId), values.getLong(groupPosition + positionOffset)));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -201,41 +144,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, LongVector va
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, LongBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- state.set(groupId, MaxLongAggregator.combine(state.getOrDefault(groupId), values.getLong(v)));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, LongVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- state.set(groupId, MaxLongAggregator.combine(state.getOrDefault(groupId), values.getLong(groupPosition + positionOffset)));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MedianAbsoluteDeviationDoubleGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MedianAbsoluteDeviationDoubleGroupingAggregatorFunction.java
index 6ec28fe565cfd..c380146094f44 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MedianAbsoluteDeviationDoubleGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MedianAbsoluteDeviationDoubleGroupingAggregatorFunction.java
@@ -18,9 +18,7 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -69,21 +67,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -100,21 +88,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -131,41 +109,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- MedianAbsoluteDeviationDoubleAggregator.combine(state, groupId, values.getDouble(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, DoubleVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- MedianAbsoluteDeviationDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -201,41 +144,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleVector
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- MedianAbsoluteDeviationDoubleAggregator.combine(state, groupId, values.getDouble(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- MedianAbsoluteDeviationDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, DoubleBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MedianAbsoluteDeviationFloatGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MedianAbsoluteDeviationFloatGroupingAggregatorFunction.java
index 21bd8fb17cfdb..a895ebc9eda6b 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MedianAbsoluteDeviationFloatGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MedianAbsoluteDeviationFloatGroupingAggregatorFunction.java
@@ -18,9 +18,7 @@
import org.elasticsearch.compute.data.FloatVector;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -69,21 +67,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -100,21 +88,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -131,41 +109,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- MedianAbsoluteDeviationFloatAggregator.combine(state, groupId, values.getFloat(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, FloatVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- MedianAbsoluteDeviationFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, FloatBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -201,41 +144,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, FloatVector v
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, FloatBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- MedianAbsoluteDeviationFloatAggregator.combine(state, groupId, values.getFloat(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, FloatVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- MedianAbsoluteDeviationFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, FloatBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MedianAbsoluteDeviationIntGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MedianAbsoluteDeviationIntGroupingAggregatorFunction.java
index d4c3357e6e497..f9b9934520f06 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MedianAbsoluteDeviationIntGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MedianAbsoluteDeviationIntGroupingAggregatorFunction.java
@@ -18,7 +18,6 @@
import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -67,21 +66,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -98,21 +87,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -129,41 +108,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- MedianAbsoluteDeviationIntAggregator.combine(state, groupId, values.getInt(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, IntVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- MedianAbsoluteDeviationIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -199,41 +143,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, IntVector val
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, IntBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- MedianAbsoluteDeviationIntAggregator.combine(state, groupId, values.getInt(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, IntVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- MedianAbsoluteDeviationIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MedianAbsoluteDeviationLongGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MedianAbsoluteDeviationLongGroupingAggregatorFunction.java
index 0a4181555c631..e1693d7475c6f 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MedianAbsoluteDeviationLongGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MedianAbsoluteDeviationLongGroupingAggregatorFunction.java
@@ -16,9 +16,7 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -69,21 +67,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -100,21 +88,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -131,41 +109,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, LongBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- MedianAbsoluteDeviationLongAggregator.combine(state, groupId, values.getLong(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, LongVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- MedianAbsoluteDeviationLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -201,41 +144,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, LongVector va
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, LongBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- MedianAbsoluteDeviationLongAggregator.combine(state, groupId, values.getLong(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, LongVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- MedianAbsoluteDeviationLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinBooleanGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinBooleanGroupingAggregatorFunction.java
index 539f96a4fd5db..4ca346913a25b 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinBooleanGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinBooleanGroupingAggregatorFunction.java
@@ -15,9 +15,7 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -67,21 +65,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -98,21 +86,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -129,41 +107,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, BooleanBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- state.set(groupId, MinBooleanAggregator.combine(state.getOrDefault(groupId), values.getBoolean(v)));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, BooleanVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- state.set(groupId, MinBooleanAggregator.combine(state.getOrDefault(groupId), values.getBoolean(groupPosition + positionOffset)));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, BooleanBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -199,41 +142,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, BooleanVector
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, BooleanBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- state.set(groupId, MinBooleanAggregator.combine(state.getOrDefault(groupId), values.getBoolean(v)));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, BooleanVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- state.set(groupId, MinBooleanAggregator.combine(state.getOrDefault(groupId), values.getBoolean(groupPosition + positionOffset)));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, BooleanBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinBytesRefGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinBytesRefGroupingAggregatorFunction.java
index d7e1c9bfb7328..dc721573876ab 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinBytesRefGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinBytesRefGroupingAggregatorFunction.java
@@ -18,9 +18,7 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -70,21 +68,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -101,21 +89,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -132,43 +110,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- MinBytesRefAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- MinBytesRefAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
@@ -206,43 +147,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefVecto
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefBlock values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- MinBytesRefAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefVector values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- MinBytesRefAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinDoubleGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinDoubleGroupingAggregatorFunction.java
index f7a2e449725a2..3212ca644aee7 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinDoubleGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinDoubleGroupingAggregatorFunction.java
@@ -17,9 +17,7 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -69,21 +67,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -100,21 +88,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -131,41 +109,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- state.set(groupId, MinDoubleAggregator.combine(state.getOrDefault(groupId), values.getDouble(v)));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, DoubleVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- state.set(groupId, MinDoubleAggregator.combine(state.getOrDefault(groupId), values.getDouble(groupPosition + positionOffset)));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -201,41 +144,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleVector
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- state.set(groupId, MinDoubleAggregator.combine(state.getOrDefault(groupId), values.getDouble(v)));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- state.set(groupId, MinDoubleAggregator.combine(state.getOrDefault(groupId), values.getDouble(groupPosition + positionOffset)));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, DoubleBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinFloatGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinFloatGroupingAggregatorFunction.java
index 688c220afa451..2e7b089e7592a 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinFloatGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinFloatGroupingAggregatorFunction.java
@@ -17,9 +17,7 @@
import org.elasticsearch.compute.data.FloatVector;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -69,21 +67,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -100,21 +88,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -131,41 +109,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- state.set(groupId, MinFloatAggregator.combine(state.getOrDefault(groupId), values.getFloat(v)));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, FloatVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- state.set(groupId, MinFloatAggregator.combine(state.getOrDefault(groupId), values.getFloat(groupPosition + positionOffset)));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, FloatBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -201,41 +144,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, FloatVector v
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, FloatBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- state.set(groupId, MinFloatAggregator.combine(state.getOrDefault(groupId), values.getFloat(v)));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, FloatVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- state.set(groupId, MinFloatAggregator.combine(state.getOrDefault(groupId), values.getFloat(groupPosition + positionOffset)));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, FloatBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinIntGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinIntGroupingAggregatorFunction.java
index 26f362ee4c2f1..50c5e80a55b0c 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinIntGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinIntGroupingAggregatorFunction.java
@@ -17,7 +17,6 @@
import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -67,21 +66,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -98,21 +87,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -129,41 +108,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- state.set(groupId, MinIntAggregator.combine(state.getOrDefault(groupId), values.getInt(v)));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, IntVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- state.set(groupId, MinIntAggregator.combine(state.getOrDefault(groupId), values.getInt(groupPosition + positionOffset)));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -199,41 +143,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, IntVector val
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, IntBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- state.set(groupId, MinIntAggregator.combine(state.getOrDefault(groupId), values.getInt(v)));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, IntVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- state.set(groupId, MinIntAggregator.combine(state.getOrDefault(groupId), values.getInt(groupPosition + positionOffset)));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinIpGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinIpGroupingAggregatorFunction.java
index 14db59fbeeac3..c89c1feb6790f 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinIpGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinIpGroupingAggregatorFunction.java
@@ -18,9 +18,7 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -70,21 +68,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -101,21 +89,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -132,43 +110,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- MinIpAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- MinIpAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
@@ -206,43 +147,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefVecto
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefBlock values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- MinIpAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefVector values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- MinIpAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinLongGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinLongGroupingAggregatorFunction.java
index 55b54827c9add..dc92d712ddb6a 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinLongGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/MinLongGroupingAggregatorFunction.java
@@ -15,9 +15,7 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -69,21 +67,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -100,21 +88,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -131,41 +109,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, LongBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- state.set(groupId, MinLongAggregator.combine(state.getOrDefault(groupId), values.getLong(v)));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, LongVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- state.set(groupId, MinLongAggregator.combine(state.getOrDefault(groupId), values.getLong(groupPosition + positionOffset)));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -201,41 +144,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, LongVector va
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, LongBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- state.set(groupId, MinLongAggregator.combine(state.getOrDefault(groupId), values.getLong(v)));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, LongVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- state.set(groupId, MinLongAggregator.combine(state.getOrDefault(groupId), values.getLong(groupPosition + positionOffset)));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/PercentileDoubleGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/PercentileDoubleGroupingAggregatorFunction.java
index b24f7c5b11281..1264bff20abf6 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/PercentileDoubleGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/PercentileDoubleGroupingAggregatorFunction.java
@@ -18,9 +18,7 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -72,21 +70,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -103,21 +91,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -134,41 +112,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- PercentileDoubleAggregator.combine(state, groupId, values.getDouble(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, DoubleVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- PercentileDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -204,41 +147,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleVector
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- PercentileDoubleAggregator.combine(state, groupId, values.getDouble(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- PercentileDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, DoubleBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/PercentileFloatGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/PercentileFloatGroupingAggregatorFunction.java
index e3e5d77ed5805..f844efae8d218 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/PercentileFloatGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/PercentileFloatGroupingAggregatorFunction.java
@@ -18,9 +18,7 @@
import org.elasticsearch.compute.data.FloatVector;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -72,21 +70,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -103,21 +91,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -134,41 +112,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- PercentileFloatAggregator.combine(state, groupId, values.getFloat(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, FloatVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- PercentileFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, FloatBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -204,41 +147,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, FloatVector v
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, FloatBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- PercentileFloatAggregator.combine(state, groupId, values.getFloat(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, FloatVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- PercentileFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, FloatBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/PercentileIntGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/PercentileIntGroupingAggregatorFunction.java
index 37bcb43c8934a..e0dd21ecc80d1 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/PercentileIntGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/PercentileIntGroupingAggregatorFunction.java
@@ -18,7 +18,6 @@
import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -70,21 +69,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -101,21 +90,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -132,41 +111,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- PercentileIntAggregator.combine(state, groupId, values.getInt(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, IntVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- PercentileIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -202,41 +146,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, IntVector val
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, IntBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- PercentileIntAggregator.combine(state, groupId, values.getInt(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, IntVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- PercentileIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/PercentileLongGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/PercentileLongGroupingAggregatorFunction.java
index 5f6ad9031f63d..1baa4a662175c 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/PercentileLongGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/PercentileLongGroupingAggregatorFunction.java
@@ -16,9 +16,7 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -72,21 +70,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -103,21 +91,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -134,41 +112,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, LongBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- PercentileLongAggregator.combine(state, groupId, values.getLong(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, LongVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- PercentileLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -204,41 +147,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, LongVector va
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, LongBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- PercentileLongAggregator.combine(state, groupId, values.getLong(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, LongVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- PercentileLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/RateDoubleGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/RateDoubleGroupingAggregatorFunction.java
index f619398f62f1e..25923bf02a761 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/RateDoubleGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/RateDoubleGroupingAggregatorFunction.java
@@ -17,7 +17,6 @@
import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -76,21 +75,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
@@ -107,21 +96,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
@@ -138,44 +117,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values,
- LongVector timestamps) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- RateDoubleAggregator.combine(state, groupId, timestamps.getLong(v), values.getDouble(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, DoubleVector values,
- LongVector timestamps) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- var valuePosition = groupPosition + positionOffset;
- RateDoubleAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getDouble(valuePosition));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleBlock values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
@@ -214,44 +155,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleVector
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleBlock values,
- LongVector timestamps) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- RateDoubleAggregator.combine(state, groupId, timestamps.getLong(v), values.getDouble(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleVector values,
- LongVector timestamps) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- var valuePosition = groupPosition + positionOffset;
- RateDoubleAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getDouble(valuePosition));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, DoubleBlock values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/RateFloatGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/RateFloatGroupingAggregatorFunction.java
index e29a5064c8e4e..7dbe1a2de02bd 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/RateFloatGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/RateFloatGroupingAggregatorFunction.java
@@ -19,7 +19,6 @@
import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -78,21 +77,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
@@ -109,21 +98,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
@@ -140,44 +119,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values,
- LongVector timestamps) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- RateFloatAggregator.combine(state, groupId, timestamps.getLong(v), values.getFloat(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, FloatVector values,
- LongVector timestamps) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- var valuePosition = groupPosition + positionOffset;
- RateFloatAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getFloat(valuePosition));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, FloatBlock values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
@@ -216,44 +157,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, FloatVector v
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, FloatBlock values,
- LongVector timestamps) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- RateFloatAggregator.combine(state, groupId, timestamps.getLong(v), values.getFloat(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, FloatVector values,
- LongVector timestamps) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- var valuePosition = groupPosition + positionOffset;
- RateFloatAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getFloat(valuePosition));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, FloatBlock values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/RateIntGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/RateIntGroupingAggregatorFunction.java
index 5cce5d5c087eb..4650ebf0c5bb2 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/RateIntGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/RateIntGroupingAggregatorFunction.java
@@ -17,7 +17,6 @@
import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -76,21 +75,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
@@ -107,21 +96,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
@@ -138,44 +117,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, IntBlock values,
- LongVector timestamps) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- RateIntAggregator.combine(state, groupId, timestamps.getLong(v), values.getInt(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, IntVector values,
- LongVector timestamps) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- var valuePosition = groupPosition + positionOffset;
- RateIntAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getInt(valuePosition));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, IntBlock values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
@@ -214,44 +155,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, IntVector val
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, IntBlock values,
- LongVector timestamps) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- RateIntAggregator.combine(state, groupId, timestamps.getLong(v), values.getInt(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, IntVector values,
- LongVector timestamps) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- var valuePosition = groupPosition + positionOffset;
- RateIntAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getInt(valuePosition));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, IntBlock values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/RateLongGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/RateLongGroupingAggregatorFunction.java
index 21bba3a723db5..a219a58068ea0 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/RateLongGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/RateLongGroupingAggregatorFunction.java
@@ -17,7 +17,6 @@
import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -76,21 +75,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock, timestampsVector);
@@ -107,21 +96,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector, timestampsVector);
@@ -138,44 +117,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, LongBlock values,
- LongVector timestamps) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- RateLongAggregator.combine(state, groupId, timestamps.getLong(v), values.getLong(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, LongVector values,
- LongVector timestamps) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- var valuePosition = groupPosition + positionOffset;
- RateLongAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getLong(valuePosition));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, LongBlock values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
@@ -214,44 +155,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, LongVector va
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, LongBlock values,
- LongVector timestamps) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- RateLongAggregator.combine(state, groupId, timestamps.getLong(v), values.getLong(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, LongVector values,
- LongVector timestamps) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- var valuePosition = groupPosition + positionOffset;
- RateLongAggregator.combine(state, groupId, timestamps.getLong(valuePosition), values.getLong(valuePosition));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongBlock values,
LongVector timestamps) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/StdDevDoubleGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/StdDevDoubleGroupingAggregatorFunction.java
index f565a9d30a1fa..7cf0ab3e7b148 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/StdDevDoubleGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/StdDevDoubleGroupingAggregatorFunction.java
@@ -15,9 +15,7 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -70,21 +68,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -101,21 +89,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -132,41 +110,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- StdDevDoubleAggregator.combine(state, groupId, values.getDouble(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, DoubleVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- StdDevDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -202,41 +145,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleVector
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- StdDevDoubleAggregator.combine(state, groupId, values.getDouble(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- StdDevDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, DoubleBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/StdDevFloatGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/StdDevFloatGroupingAggregatorFunction.java
index 19639215f7312..e3bbbb5d4d624 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/StdDevFloatGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/StdDevFloatGroupingAggregatorFunction.java
@@ -17,9 +17,7 @@
import org.elasticsearch.compute.data.FloatVector;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -72,21 +70,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -103,21 +91,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -134,41 +112,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- StdDevFloatAggregator.combine(state, groupId, values.getFloat(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, FloatVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- StdDevFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, FloatBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -204,41 +147,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, FloatVector v
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, FloatBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- StdDevFloatAggregator.combine(state, groupId, values.getFloat(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, FloatVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- StdDevFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, FloatBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/StdDevIntGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/StdDevIntGroupingAggregatorFunction.java
index 5c691e4f1f4a2..b0c780b232fe7 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/StdDevIntGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/StdDevIntGroupingAggregatorFunction.java
@@ -17,7 +17,6 @@
import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -70,21 +69,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -101,21 +90,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -132,41 +111,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- StdDevIntAggregator.combine(state, groupId, values.getInt(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, IntVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- StdDevIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -202,41 +146,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, IntVector val
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, IntBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- StdDevIntAggregator.combine(state, groupId, values.getInt(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, IntVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- StdDevIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/StdDevLongGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/StdDevLongGroupingAggregatorFunction.java
index e627f3bb2848e..7e33a0c70c145 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/StdDevLongGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/StdDevLongGroupingAggregatorFunction.java
@@ -15,9 +15,7 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -70,21 +68,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -101,21 +89,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -132,41 +110,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, LongBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- StdDevLongAggregator.combine(state, groupId, values.getLong(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, LongVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- StdDevLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -202,41 +145,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, LongVector va
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, LongBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- StdDevLongAggregator.combine(state, groupId, values.getLong(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, LongVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- StdDevLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/SumDoubleGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/SumDoubleGroupingAggregatorFunction.java
index 452ebe1ee21a0..303bb3d0ff5dc 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/SumDoubleGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/SumDoubleGroupingAggregatorFunction.java
@@ -17,9 +17,7 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -70,21 +68,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -101,21 +89,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -132,41 +110,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- SumDoubleAggregator.combine(state, groupId, values.getDouble(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, DoubleVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- SumDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -202,41 +145,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleVector
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- SumDoubleAggregator.combine(state, groupId, values.getDouble(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- SumDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, DoubleBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/SumFloatGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/SumFloatGroupingAggregatorFunction.java
index dc0ea3d605ebc..154057db5f462 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/SumFloatGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/SumFloatGroupingAggregatorFunction.java
@@ -19,9 +19,7 @@
import org.elasticsearch.compute.data.FloatVector;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -72,21 +70,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -103,21 +91,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -134,41 +112,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- SumFloatAggregator.combine(state, groupId, values.getFloat(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, FloatVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- SumFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, FloatBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -204,41 +147,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, FloatVector v
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, FloatBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- SumFloatAggregator.combine(state, groupId, values.getFloat(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, FloatVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- SumFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, FloatBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/SumIntGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/SumIntGroupingAggregatorFunction.java
index 68281b8eb12f0..9b5cba8cd5a89 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/SumIntGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/SumIntGroupingAggregatorFunction.java
@@ -17,7 +17,6 @@
import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -69,21 +68,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -100,21 +89,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -131,41 +110,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- state.set(groupId, SumIntAggregator.combine(state.getOrDefault(groupId), values.getInt(v)));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, IntVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- state.set(groupId, SumIntAggregator.combine(state.getOrDefault(groupId), values.getInt(groupPosition + positionOffset)));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -201,41 +145,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, IntVector val
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, IntBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- state.set(groupId, SumIntAggregator.combine(state.getOrDefault(groupId), values.getInt(v)));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, IntVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- state.set(groupId, SumIntAggregator.combine(state.getOrDefault(groupId), values.getInt(groupPosition + positionOffset)));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/SumLongGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/SumLongGroupingAggregatorFunction.java
index 54b06690d281e..a2969a4dddaa8 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/SumLongGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/SumLongGroupingAggregatorFunction.java
@@ -15,9 +15,7 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -69,21 +67,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -100,21 +88,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -131,41 +109,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, LongBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- state.set(groupId, SumLongAggregator.combine(state.getOrDefault(groupId), values.getLong(v)));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, LongVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- state.set(groupId, SumLongAggregator.combine(state.getOrDefault(groupId), values.getLong(groupPosition + positionOffset)));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -201,41 +144,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, LongVector va
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, LongBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- state.set(groupId, SumLongAggregator.combine(state.getOrDefault(groupId), values.getLong(v)));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, LongVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- state.set(groupId, SumLongAggregator.combine(state.getOrDefault(groupId), values.getLong(groupPosition + positionOffset)));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopBooleanGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopBooleanGroupingAggregatorFunction.java
index bd8dce74df88e..1fa211364cfcc 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopBooleanGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopBooleanGroupingAggregatorFunction.java
@@ -15,9 +15,7 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -73,21 +71,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -104,21 +92,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -135,41 +113,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, BooleanBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- TopBooleanAggregator.combine(state, groupId, values.getBoolean(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, BooleanVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- TopBooleanAggregator.combine(state, groupId, values.getBoolean(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, BooleanBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -205,41 +148,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, BooleanVector
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, BooleanBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- TopBooleanAggregator.combine(state, groupId, values.getBoolean(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, BooleanVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- TopBooleanAggregator.combine(state, groupId, values.getBoolean(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, BooleanBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopBytesRefGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopBytesRefGroupingAggregatorFunction.java
index 594b06f6463ec..4ab5bb9875107 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopBytesRefGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopBytesRefGroupingAggregatorFunction.java
@@ -16,9 +16,7 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -74,21 +72,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -105,21 +93,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -136,43 +114,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- TopBytesRefAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- TopBytesRefAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
@@ -210,43 +151,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefVecto
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefBlock values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- TopBytesRefAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefVector values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- TopBytesRefAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopDoubleGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopDoubleGroupingAggregatorFunction.java
index 39abd06f5c6ef..8a2f4aef9cf35 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopDoubleGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopDoubleGroupingAggregatorFunction.java
@@ -15,9 +15,7 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -73,21 +71,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -104,21 +92,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -135,41 +113,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- TopDoubleAggregator.combine(state, groupId, values.getDouble(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, DoubleVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- TopDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -205,41 +148,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleVector
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- TopDoubleAggregator.combine(state, groupId, values.getDouble(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- TopDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, DoubleBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopFloatGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopFloatGroupingAggregatorFunction.java
index 1506849737876..d09bf60c82aca 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopFloatGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopFloatGroupingAggregatorFunction.java
@@ -15,9 +15,7 @@
import org.elasticsearch.compute.data.FloatVector;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -73,21 +71,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -104,21 +92,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -135,41 +113,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- TopFloatAggregator.combine(state, groupId, values.getFloat(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, FloatVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- TopFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, FloatBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -205,41 +148,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, FloatVector v
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, FloatBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- TopFloatAggregator.combine(state, groupId, values.getFloat(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, FloatVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- TopFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, FloatBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopIntGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopIntGroupingAggregatorFunction.java
index 19742383aca53..786f0660ea06f 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopIntGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopIntGroupingAggregatorFunction.java
@@ -15,7 +15,6 @@
import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -71,21 +70,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -102,21 +91,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -133,41 +112,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- TopIntAggregator.combine(state, groupId, values.getInt(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, IntVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- TopIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -203,41 +147,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, IntVector val
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, IntBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- TopIntAggregator.combine(state, groupId, values.getInt(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, IntVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- TopIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopIpGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopIpGroupingAggregatorFunction.java
index 8ae7295cd0ce7..3d1137486fb75 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopIpGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopIpGroupingAggregatorFunction.java
@@ -16,9 +16,7 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -74,21 +72,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -105,21 +93,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -136,43 +114,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- TopIpAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- TopIpAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
@@ -210,43 +151,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefVecto
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefBlock values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- TopIpAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefVector values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- TopIpAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopLongGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopLongGroupingAggregatorFunction.java
index d07ac88a024f5..820aa3c6c63e1 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopLongGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/TopLongGroupingAggregatorFunction.java
@@ -13,9 +13,7 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -73,21 +71,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -104,21 +92,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -135,41 +113,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, LongBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- TopLongAggregator.combine(state, groupId, values.getLong(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, LongVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- TopLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -205,41 +148,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, LongVector va
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, LongBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- TopLongAggregator.combine(state, groupId, values.getLong(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, LongVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- TopLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesBooleanGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesBooleanGroupingAggregatorFunction.java
index e458d45ca5ef2..a928d0908eb8e 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesBooleanGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesBooleanGroupingAggregatorFunction.java
@@ -15,9 +15,7 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -66,21 +64,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -97,21 +85,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -128,41 +106,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, BooleanBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- ValuesBooleanAggregator.combine(state, groupId, values.getBoolean(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, BooleanVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- ValuesBooleanAggregator.combine(state, groupId, values.getBoolean(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, BooleanBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -198,41 +141,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, BooleanVector
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, BooleanBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- ValuesBooleanAggregator.combine(state, groupId, values.getBoolean(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, BooleanVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- ValuesBooleanAggregator.combine(state, groupId, values.getBoolean(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, BooleanBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesBytesRefGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesBytesRefGroupingAggregatorFunction.java
index 502bc14e05ab4..662c4b445496e 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesBytesRefGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesBytesRefGroupingAggregatorFunction.java
@@ -16,9 +16,7 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -67,21 +65,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -98,21 +86,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -129,43 +107,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- ValuesBytesRefAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- ValuesBytesRefAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
@@ -203,43 +144,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefVecto
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefBlock values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- ValuesBytesRefAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefVector values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- ValuesBytesRefAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesDoubleGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesDoubleGroupingAggregatorFunction.java
index 228fdb337cad6..76c865b33fd09 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesDoubleGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesDoubleGroupingAggregatorFunction.java
@@ -15,9 +15,7 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -66,21 +64,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -97,21 +85,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -128,41 +106,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, DoubleBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- ValuesDoubleAggregator.combine(state, groupId, values.getDouble(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, DoubleVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- ValuesDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -198,41 +141,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, DoubleVector
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- ValuesDoubleAggregator.combine(state, groupId, values.getDouble(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, DoubleVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- ValuesDoubleAggregator.combine(state, groupId, values.getDouble(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, DoubleBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesFloatGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesFloatGroupingAggregatorFunction.java
index 49a429058c1f8..bed9a884ccd10 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesFloatGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesFloatGroupingAggregatorFunction.java
@@ -15,9 +15,7 @@
import org.elasticsearch.compute.data.FloatVector;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -66,21 +64,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -97,21 +85,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -128,41 +106,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, FloatBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- ValuesFloatAggregator.combine(state, groupId, values.getFloat(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, FloatVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- ValuesFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, FloatBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -198,41 +141,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, FloatVector v
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, FloatBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- ValuesFloatAggregator.combine(state, groupId, values.getFloat(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, FloatVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- ValuesFloatAggregator.combine(state, groupId, values.getFloat(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, FloatBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesIntGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesIntGroupingAggregatorFunction.java
index a5065a9a108f8..fb801eadcf5cd 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesIntGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesIntGroupingAggregatorFunction.java
@@ -15,7 +15,6 @@
import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -64,21 +63,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -95,21 +84,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -126,41 +105,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- ValuesIntAggregator.combine(state, groupId, values.getInt(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, IntVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- ValuesIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -196,41 +140,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, IntVector val
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, IntBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- ValuesIntAggregator.combine(state, groupId, values.getInt(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, IntVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- ValuesIntAggregator.combine(state, groupId, values.getInt(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesLongGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesLongGroupingAggregatorFunction.java
index 182552dbb1e9f..061af9fcc9213 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesLongGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/ValuesLongGroupingAggregatorFunction.java
@@ -13,9 +13,7 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -66,21 +64,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -97,21 +85,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -128,41 +106,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, LongBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- ValuesLongAggregator.combine(state, groupId, values.getLong(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, LongVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- ValuesLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -198,41 +141,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, LongVector va
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, LongBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- ValuesLongAggregator.combine(state, groupId, values.getLong(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, LongVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- ValuesLongAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialCentroidCartesianPointDocValuesGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialCentroidCartesianPointDocValuesGroupingAggregatorFunction.java
index 15be0ef05773a..a959f808e438b 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialCentroidCartesianPointDocValuesGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialCentroidCartesianPointDocValuesGroupingAggregatorFunction.java
@@ -19,9 +19,7 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -76,21 +74,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -107,21 +95,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -138,41 +116,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, LongBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- SpatialCentroidCartesianPointDocValuesAggregator.combine(state, groupId, values.getLong(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, LongVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- SpatialCentroidCartesianPointDocValuesAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -208,41 +151,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, LongVector va
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, LongBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- SpatialCentroidCartesianPointDocValuesAggregator.combine(state, groupId, values.getLong(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, LongVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- SpatialCentroidCartesianPointDocValuesAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialCentroidCartesianPointSourceValuesGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialCentroidCartesianPointSourceValuesGroupingAggregatorFunction.java
index 2852605288a04..a3593b8152dd7 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialCentroidCartesianPointSourceValuesGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialCentroidCartesianPointSourceValuesGroupingAggregatorFunction.java
@@ -22,9 +22,7 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -79,21 +77,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -110,21 +98,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -141,43 +119,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- SpatialCentroidCartesianPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- SpatialCentroidCartesianPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
@@ -215,43 +156,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefVecto
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefBlock values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- SpatialCentroidCartesianPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefVector values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- SpatialCentroidCartesianPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialCentroidGeoPointDocValuesGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialCentroidGeoPointDocValuesGroupingAggregatorFunction.java
index a8eb1fdad16bb..77a959e654862 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialCentroidGeoPointDocValuesGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialCentroidGeoPointDocValuesGroupingAggregatorFunction.java
@@ -19,9 +19,7 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -76,21 +74,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -107,21 +95,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -138,41 +116,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, LongBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- SpatialCentroidGeoPointDocValuesAggregator.combine(state, groupId, values.getLong(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, LongVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- SpatialCentroidGeoPointDocValuesAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -208,41 +151,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, LongVector va
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, LongBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- SpatialCentroidGeoPointDocValuesAggregator.combine(state, groupId, values.getLong(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, LongVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- SpatialCentroidGeoPointDocValuesAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialCentroidGeoPointSourceValuesGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialCentroidGeoPointSourceValuesGroupingAggregatorFunction.java
index c2fda53aa585a..fc05c0932f50c 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialCentroidGeoPointSourceValuesGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialCentroidGeoPointSourceValuesGroupingAggregatorFunction.java
@@ -22,9 +22,7 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -79,21 +77,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -110,21 +98,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -141,43 +119,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- SpatialCentroidGeoPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- SpatialCentroidGeoPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
@@ -215,43 +156,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefVecto
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefBlock values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- SpatialCentroidGeoPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefVector values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- SpatialCentroidGeoPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentCartesianPointDocValuesGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentCartesianPointDocValuesGroupingAggregatorFunction.java
index d593273a6064e..76f66cf41d569 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentCartesianPointDocValuesGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentCartesianPointDocValuesGroupingAggregatorFunction.java
@@ -19,7 +19,6 @@
import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -73,21 +72,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -104,21 +93,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -135,41 +114,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, LongBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- SpatialExtentCartesianPointDocValuesAggregator.combine(state, groupId, values.getLong(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, LongVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- SpatialExtentCartesianPointDocValuesAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -205,41 +149,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, LongVector va
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, LongBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- SpatialExtentCartesianPointDocValuesAggregator.combine(state, groupId, values.getLong(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, LongVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- SpatialExtentCartesianPointDocValuesAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentCartesianPointSourceValuesGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentCartesianPointSourceValuesGroupingAggregatorFunction.java
index 723bb68703583..3c1159eb0de11 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentCartesianPointSourceValuesGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentCartesianPointSourceValuesGroupingAggregatorFunction.java
@@ -22,7 +22,6 @@
import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -74,21 +73,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -105,21 +94,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -136,43 +115,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- SpatialExtentCartesianPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- SpatialExtentCartesianPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
@@ -210,43 +152,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefVecto
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefBlock values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- SpatialExtentCartesianPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefVector values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- SpatialExtentCartesianPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentCartesianShapeDocValuesGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentCartesianShapeDocValuesGroupingAggregatorFunction.java
index c885614b1efbc..7057281c2ec6f 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentCartesianShapeDocValuesGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentCartesianShapeDocValuesGroupingAggregatorFunction.java
@@ -19,7 +19,6 @@
import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -71,21 +70,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -102,21 +91,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -133,33 +112,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- int[] valuesArray = new int[valuesEnd - valuesStart];
- for (int v = valuesStart; v < valuesEnd; v++) {
- valuesArray[v-valuesStart] = values.getInt(v);
- }
- SpatialExtentCartesianShapeDocValuesAggregator.combine(state, groupId, valuesArray);
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, IntVector values) {
- // This type does not support vectors because all values are multi-valued
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -187,33 +139,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, IntVector val
// This type does not support vectors because all values are multi-valued
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, IntBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- int[] valuesArray = new int[valuesEnd - valuesStart];
- for (int v = valuesStart; v < valuesEnd; v++) {
- valuesArray[v-valuesStart] = values.getInt(v);
- }
- SpatialExtentCartesianShapeDocValuesAggregator.combine(state, groupId, valuesArray);
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, IntVector values) {
- // This type does not support vectors because all values are multi-valued
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentCartesianShapeSourceValuesGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentCartesianShapeSourceValuesGroupingAggregatorFunction.java
index d4a392a24b87b..21241efbf3198 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentCartesianShapeSourceValuesGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentCartesianShapeSourceValuesGroupingAggregatorFunction.java
@@ -22,7 +22,6 @@
import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -74,21 +73,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -105,21 +94,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -136,43 +115,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- SpatialExtentCartesianShapeSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- SpatialExtentCartesianShapeSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
@@ -210,43 +152,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefVecto
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefBlock values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- SpatialExtentCartesianShapeSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefVector values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- SpatialExtentCartesianShapeSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentGeoPointDocValuesGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentGeoPointDocValuesGroupingAggregatorFunction.java
index 943ca59c85398..387ed0abc34bb 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentGeoPointDocValuesGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentGeoPointDocValuesGroupingAggregatorFunction.java
@@ -19,7 +19,6 @@
import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -75,21 +74,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -106,21 +95,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -137,41 +116,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, LongBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- SpatialExtentGeoPointDocValuesAggregator.combine(state, groupId, values.getLong(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, LongVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- SpatialExtentGeoPointDocValuesAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -207,41 +151,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, LongVector va
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, LongBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- SpatialExtentGeoPointDocValuesAggregator.combine(state, groupId, values.getLong(v));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, LongVector values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- SpatialExtentGeoPointDocValuesAggregator.combine(state, groupId, values.getLong(groupPosition + positionOffset));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, LongBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentGeoPointSourceValuesGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentGeoPointSourceValuesGroupingAggregatorFunction.java
index e482c48731ec9..9d9c10902ada6 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentGeoPointSourceValuesGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentGeoPointSourceValuesGroupingAggregatorFunction.java
@@ -22,7 +22,6 @@
import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -76,21 +75,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -107,21 +96,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -138,43 +117,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- SpatialExtentGeoPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- SpatialExtentGeoPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
@@ -212,43 +154,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefVecto
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefBlock values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- SpatialExtentGeoPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefVector values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- SpatialExtentGeoPointSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentGeoShapeDocValuesGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentGeoShapeDocValuesGroupingAggregatorFunction.java
index e5fca370f7717..82553910e1587 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentGeoShapeDocValuesGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentGeoShapeDocValuesGroupingAggregatorFunction.java
@@ -19,7 +19,6 @@
import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -73,21 +72,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -104,21 +93,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -135,33 +114,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, IntBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- int[] valuesArray = new int[valuesEnd - valuesStart];
- for (int v = valuesStart; v < valuesEnd; v++) {
- valuesArray[v-valuesStart] = values.getInt(v);
- }
- SpatialExtentGeoShapeDocValuesAggregator.combine(state, groupId, valuesArray);
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, IntVector values) {
- // This type does not support vectors because all values are multi-valued
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
@@ -189,33 +141,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, IntVector val
// This type does not support vectors because all values are multi-valued
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, IntBlock values) {
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- int[] valuesArray = new int[valuesEnd - valuesStart];
- for (int v = valuesStart; v < valuesEnd; v++) {
- valuesArray[v-valuesStart] = values.getInt(v);
- }
- SpatialExtentGeoShapeDocValuesAggregator.combine(state, groupId, valuesArray);
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, IntVector values) {
- // This type does not support vectors because all values are multi-valued
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, IntBlock values) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
diff --git a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentGeoShapeSourceValuesGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentGeoShapeSourceValuesGroupingAggregatorFunction.java
index e53fa3fe29ac8..ccab0870e206d 100644
--- a/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentGeoShapeSourceValuesGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/generated/org/elasticsearch/compute/aggregation/spatial/SpatialExtentGeoShapeSourceValuesGroupingAggregatorFunction.java
@@ -22,7 +22,6 @@
import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
@@ -76,21 +75,11 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
state.enableGroupIdTracking(seenGroupIds);
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesBlock);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
@@ -107,21 +96,11 @@ public void close() {
};
}
return new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
}
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- addRawInput(positionOffset, groupIds, valuesVector);
- }
-
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesVector);
@@ -138,43 +117,6 @@ public void close() {
};
}
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefBlock values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- SpatialExtentGeoShapeSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntBlock groups, BytesRefVector values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- SpatialExtentGeoShapeSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
@@ -212,43 +154,6 @@ private void addRawInput(int positionOffset, IntArrayBlock groups, BytesRefVecto
}
}
- private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefBlock values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- if (values.isNull(groupPosition + positionOffset)) {
- continue;
- }
- int valuesStart = values.getFirstValueIndex(groupPosition + positionOffset);
- int valuesEnd = valuesStart + values.getValueCount(groupPosition + positionOffset);
- for (int v = valuesStart; v < valuesEnd; v++) {
- SpatialExtentGeoShapeSourceValuesAggregator.combine(state, groupId, values.getBytesRef(v, scratch));
- }
- }
- }
- }
-
- private void addRawInput(int positionOffset, IntVectorBlock groups, BytesRefVector values) {
- BytesRef scratch = new BytesRef();
- for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
- if (groups.isNull(groupPosition)) {
- continue;
- }
- int groupStart = groups.getFirstValueIndex(groupPosition);
- int groupEnd = groupStart + groups.getValueCount(groupPosition);
- for (int g = groupStart; g < groupEnd; g++) {
- int groupId = groups.getInt(g);
- SpatialExtentGeoShapeSourceValuesAggregator.combine(state, groupId, values.getBytesRef(groupPosition + positionOffset, scratch));
- }
- }
- }
-
private void addRawInput(int positionOffset, IntBigArrayBlock groups, BytesRefBlock values) {
BytesRef scratch = new BytesRef();
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
diff --git a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/CountGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/CountGroupingAggregatorFunction.java
index 124fb5a1745bd..4c45956124862 100644
--- a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/CountGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/CountGroupingAggregatorFunction.java
@@ -11,8 +11,11 @@
import org.elasticsearch.compute.data.BooleanBlock;
import org.elasticsearch.compute.data.BooleanVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
@@ -68,7 +71,12 @@ public AddInput prepareProcessPage(SeenGroupIds seenGroupIds, Page page) {
}
return new AddInput() {
@Override
- public void add(int positionOffset, IntBlock groupIds) {
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(positionOffset, groupIds, valuesBlock);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(positionOffset, groupIds, valuesBlock);
}
@@ -84,7 +92,12 @@ public void close() {}
}
return new AddInput() {
@Override
- public void add(int positionOffset, IntBlock groupIds) {
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addRawInput(groupIds);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
addRawInput(groupIds);
}
@@ -109,7 +122,25 @@ private void addRawInput(int positionOffset, IntVector groups, Block values) {
}
}
- private void addRawInput(int positionOffset, IntBlock groups, Block values) {
+ private void addRawInput(int positionOffset, IntArrayBlock groups, Block values) {
+ int position = positionOffset;
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++, position++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = Math.toIntExact(groups.getInt(g));
+ if (values.isNull(position)) {
+ continue;
+ }
+ state.increment(groupId, values.getValueCount(position));
+ }
+ }
+ }
+
+ private void addRawInput(int positionOffset, IntBigArrayBlock groups, Block values) {
int position = positionOffset;
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++, position++) {
if (groups.isNull(groupPosition)) {
@@ -140,7 +171,24 @@ private void addRawInput(IntVector groups) {
/**
* This method is called for count all.
*/
- private void addRawInput(IntBlock groups) {
+ private void addRawInput(IntArrayBlock groups) {
+ for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
+ if (groups.isNull(groupPosition)) {
+ continue;
+ }
+ int groupStart = groups.getFirstValueIndex(groupPosition);
+ int groupEnd = groupStart + groups.getValueCount(groupPosition);
+ for (int g = groupStart; g < groupEnd; g++) {
+ int groupId = Math.toIntExact(groups.getInt(g));
+ state.increment(groupId, 1);
+ }
+ }
+ }
+
+ /**
+ * This method is called for count all.
+ */
+ private void addRawInput(IntBigArrayBlock groups) {
for (int groupPosition = 0; groupPosition < groups.getPositionCount(); groupPosition++) {
if (groups.isNull(groupPosition)) {
continue;
diff --git a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/FilteredGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/FilteredGroupingAggregatorFunction.java
index f34129c1116e4..8b7734fe33ab7 100644
--- a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/FilteredGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/FilteredGroupingAggregatorFunction.java
@@ -10,6 +10,8 @@
import org.elasticsearch.compute.data.Block;
import org.elasticsearch.compute.data.BooleanBlock;
import org.elasticsearch.compute.data.BooleanVector;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
import org.elasticsearch.compute.data.Page;
@@ -56,7 +58,21 @@ public AddInput prepareProcessPage(SeenGroupIds seenGroupIds, Page page) {
private record FilteredAddInput(BooleanVector mask, AddInput nextAdd, int positionCount) implements AddInput {
@Override
- public void add(int positionOffset, IntBlock groupIds) {
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addBlock(positionOffset, groupIds);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addBlock(positionOffset, groupIds);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVector groupIds) {
+ addBlock(positionOffset, groupIds.asBlock());
+ }
+
+ private void addBlock(int positionOffset, IntBlock groupIds) {
if (positionOffset == 0) {
try (IntBlock filtered = groupIds.keepMask(mask)) {
nextAdd.add(positionOffset, filtered);
@@ -73,11 +89,6 @@ public void add(int positionOffset, IntBlock groupIds) {
}
}
- @Override
- public void add(int positionOffset, IntVector groupIds) {
- add(positionOffset, groupIds.asBlock());
- }
-
@Override
public void close() {
Releasables.close(mask, nextAdd);
diff --git a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/FromPartialGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/FromPartialGroupingAggregatorFunction.java
index 1706b8c023995..cc61932a89dbb 100644
--- a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/FromPartialGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/FromPartialGroupingAggregatorFunction.java
@@ -10,6 +10,8 @@
import org.elasticsearch.compute.data.Block;
import org.elasticsearch.compute.data.CompositeBlock;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
import org.elasticsearch.compute.data.Page;
@@ -45,6 +47,16 @@ public void add(int positionOffset, IntBlock groupIds) {
assert false : "Intermediate group id must not have nulls";
throw new IllegalStateException("Intermediate group id must not have nulls");
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ assert false : "Intermediate group id must not have nulls";
+ throw new IllegalStateException("Intermediate group id must not have nulls");
+ }
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ assert false : "Intermediate group id must not have nulls";
+ throw new IllegalStateException("Intermediate group id must not have nulls");
+ }
@Override
public void add(int positionOffset, IntVector groupIds) {
diff --git a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/GroupingAggregator.java b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/GroupingAggregator.java
index 268ac3ba32678..7cb149e983510 100644
--- a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/GroupingAggregator.java
+++ b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/GroupingAggregator.java
@@ -9,8 +9,11 @@
import org.elasticsearch.compute.Describable;
import org.elasticsearch.compute.data.Block;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
import org.elasticsearch.core.Releasable;
@@ -44,6 +47,14 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
public void add(int positionOffset, IntBlock groupIds) {
throw new IllegalStateException("Intermediate group id must not have nulls");
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ throw new IllegalStateException("Intermediate group id must not have nulls");
+ }
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ throw new IllegalStateException("Intermediate group id must not have nulls");
+ }
@Override
public void add(int positionOffset, IntVector groupIds) {
diff --git a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/GroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/GroupingAggregatorFunction.java
index 8347fa1a6e8cc..7ee2925553518 100644
--- a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/GroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/GroupingAggregatorFunction.java
@@ -8,6 +8,8 @@
package org.elasticsearch.compute.aggregation;
import org.elasticsearch.compute.data.Block;
+import org.elasticsearch.compute.data.ConstantNullBlock;
+import org.elasticsearch.compute.data.ConstantNullVector;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
@@ -51,50 +53,21 @@ interface AddInput extends Releasable {
* be skipped entirely or the groupIds block could contain a
* {@code null} value at that position.
*
+ *
+ * This method delegates the processing to the other overloads for specific groupIds block types.
+ *
* @param positionOffset offset into the {@link Page} used to build this
* {@link AddInput} of these ids
* @param groupIds {@link Block} of group id, some of which may be null
* or multivalued
*/
- void add(int positionOffset, IntBlock groupIds);
-
- /**
- * Implementation of {@link #add(int, IntBlock)} for a specific type of block.
- *
- * If not implemented, defaults to the generic implementation.
- *
- */
- default void add(int positionOffset, IntArrayBlock groupIds) {
- add(positionOffset, (IntBlock) groupIds);
- }
-
- /**
- * Implementation of {@link #add(int, IntBlock)} for a specific type of block.
- *
- * If not implemented, defaults to the generic implementation.
- *
- */
- default void add(int positionOffset, IntVectorBlock groupIds) {
- add(positionOffset, (IntBlock) groupIds);
- }
-
- /**
- * Implementation of {@link #add(int, IntBlock)} for a specific type of block.
- *
- * If not implemented, defaults to the generic implementation.
- *
- */
- default void add(int positionOffset, IntBigArrayBlock groupIds) {
- add(positionOffset, (IntBlock) groupIds);
- }
-
- /**
- * Calls an {@code add()} implementation given the specific {@code groupIds} block type.
- */
- default void addSpecific(int positionOffset, IntBlock groupIds) {
+ default void add(int positionOffset, IntBlock groupIds) {
switch (groupIds) {
+ case ConstantNullBlock ignored:
+ // No-op
+ break;
case IntVectorBlock b:
- add(positionOffset, b);
+ add(positionOffset, b.asVector());
break;
case IntArrayBlock b:
add(positionOffset, b);
@@ -102,12 +75,19 @@ default void addSpecific(int positionOffset, IntBlock groupIds) {
case IntBigArrayBlock b:
add(positionOffset, b);
break;
- default:
- add(positionOffset, groupIds);
- break;
}
}
+ /**
+ * Implementation of {@link #add(int, IntBlock)} for a specific type of block.
+ */
+ void add(int positionOffset, IntArrayBlock groupIds);
+
+ /**
+ * Implementation of {@link #add(int, IntBlock)} for a specific type of block.
+ */
+ void add(int positionOffset, IntBigArrayBlock groupIds);
+
/**
* Send a batch of group ids to the aggregator. The {@code groupIds}
* may be offset from the start of the block to allow for sending chunks
diff --git a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/table/BlockHashRowInTableLookup.java b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/table/BlockHashRowInTableLookup.java
index c198853bb36ad..f00606f67548c 100644
--- a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/table/BlockHashRowInTableLookup.java
+++ b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/table/BlockHashRowInTableLookup.java
@@ -12,6 +12,8 @@
import org.elasticsearch.compute.aggregation.blockhash.BlockHash;
import org.elasticsearch.compute.data.Block;
import org.elasticsearch.compute.data.BlockFactory;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
import org.elasticsearch.compute.data.Page;
@@ -40,7 +42,23 @@ final class BlockHashRowInTableLookup extends RowInTableLookup {
private int lastOrd = -1;
@Override
- public void add(int positionOffset, IntBlock groupIds) {
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ for (int p = 0; p < groupIds.getPositionCount(); p++) {
+ int first = groupIds.getFirstValueIndex(p);
+ int end = groupIds.getValueCount(p) + first;
+ for (int i = first; i < end; i++) {
+ int ord = groupIds.getInt(i);
+ if (ord != lastOrd + 1) {
+ // TODO double check these errors over REST once we have LOOKUP
+ throw new IllegalArgumentException("found a duplicate row");
+ }
+ lastOrd = ord;
+ }
+ }
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
for (int p = 0; p < groupIds.getPositionCount(); p++) {
int first = groupIds.getFirstValueIndex(p);
int end = groupIds.getValueCount(p) + first;
diff --git a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/data/ConstantNullBlock.java b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/data/ConstantNullBlock.java
index 94cd0bf9ddd22..2ed905f4299ca 100644
--- a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/data/ConstantNullBlock.java
+++ b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/data/ConstantNullBlock.java
@@ -19,7 +19,7 @@
/**
* Block implementation representing a constant null value.
*/
-final class ConstantNullBlock extends AbstractNonThreadSafeRefCounted
+public final class ConstantNullBlock extends AbstractNonThreadSafeRefCounted
implements
BooleanBlock,
IntBlock,
diff --git a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/operator/HashAggregationOperator.java b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/operator/HashAggregationOperator.java
index 7d3caa2a3dcff..542259768c2ca 100644
--- a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/operator/HashAggregationOperator.java
+++ b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/operator/HashAggregationOperator.java
@@ -147,26 +147,6 @@ class AddInput implements GroupingAggregatorFunction.AddInput {
long hashStart = System.nanoTime();
long aggStart;
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
- IntVector groupIdsVector = groupIds.asVector();
- if (groupIdsVector != null) {
- add(positionOffset, groupIdsVector);
- } else {
- startAggEndHash();
- for (GroupingAggregatorFunction.AddInput p : prepared) {
- p.add(positionOffset, groupIds);
- }
- end();
- }
- }
-
- @Override
- public void add(int positionOffset, IntVectorBlock groupIds) {
- IntVector groupIdsVector = groupIds.asVector();
- add(positionOffset, groupIdsVector);
- }
-
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
startAggEndHash();
From 78cb4e068826eb89cbc4bf7b28d47d445bf0b517 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Iv=C3=A1n=20Cea=20Fontenla?=
Date: Wed, 30 Apr 2025 19:32:48 +0200
Subject: [PATCH 05/11] Update docs/changelog/127582.yaml
---
docs/changelog/127582.yaml | 5 +++++
1 file changed, 5 insertions(+)
create mode 100644 docs/changelog/127582.yaml
diff --git a/docs/changelog/127582.yaml b/docs/changelog/127582.yaml
new file mode 100644
index 0000000000000..589c20e8f2fbc
--- /dev/null
+++ b/docs/changelog/127582.yaml
@@ -0,0 +1,5 @@
+pr: 127582
+summary: Specialize ags `AddInput` for each block type
+area: ES|QL
+type: enhancement
+issues: []
From 4dd94b7c7c10f8794f1a5fe9d005142108522af8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Iv=C3=A1n=20Cea=20Fontenla?=
Date: Wed, 30 Apr 2025 19:38:07 +0200
Subject: [PATCH 06/11] Spotless format
---
.../compute/gen/GroupingAggregatorImplementer.java | 3 +--
.../compute/aggregation/CountGroupingAggregatorFunction.java | 2 --
.../aggregation/FromPartialGroupingAggregatorFunction.java | 2 ++
.../elasticsearch/compute/aggregation/GroupingAggregator.java | 3 ++-
.../compute/aggregation/GroupingAggregatorFunction.java | 1 -
.../compute/operator/HashAggregationOperator.java | 2 --
6 files changed, 5 insertions(+), 8 deletions(-)
diff --git a/x-pack/plugin/esql/compute/gen/src/main/java/org/elasticsearch/compute/gen/GroupingAggregatorImplementer.java b/x-pack/plugin/esql/compute/gen/src/main/java/org/elasticsearch/compute/gen/GroupingAggregatorImplementer.java
index 5149042fa5254..b02abd9b1fa58 100644
--- a/x-pack/plugin/esql/compute/gen/src/main/java/org/elasticsearch/compute/gen/GroupingAggregatorImplementer.java
+++ b/x-pack/plugin/esql/compute/gen/src/main/java/org/elasticsearch/compute/gen/GroupingAggregatorImplementer.java
@@ -77,8 +77,7 @@
* and break-point-able as possible.
*/
public class GroupingAggregatorImplementer {
- private static final List GROUP_IDS_CLASSES =
- List.of(INT_ARRAY_BLOCK, INT_BIG_ARRAY_BLOCK, INT_VECTOR);
+ private static final List GROUP_IDS_CLASSES = List.of(INT_ARRAY_BLOCK, INT_BIG_ARRAY_BLOCK, INT_VECTOR);
private final TypeElement declarationType;
private final List warnExceptions;
diff --git a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/CountGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/CountGroupingAggregatorFunction.java
index 4c45956124862..611118d03872b 100644
--- a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/CountGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/CountGroupingAggregatorFunction.java
@@ -13,9 +13,7 @@
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.LongBlock;
import org.elasticsearch.compute.data.LongVector;
import org.elasticsearch.compute.data.Page;
diff --git a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/FromPartialGroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/FromPartialGroupingAggregatorFunction.java
index cc61932a89dbb..19012cabce5a1 100644
--- a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/FromPartialGroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/FromPartialGroupingAggregatorFunction.java
@@ -47,11 +47,13 @@ public void add(int positionOffset, IntBlock groupIds) {
assert false : "Intermediate group id must not have nulls";
throw new IllegalStateException("Intermediate group id must not have nulls");
}
+
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
assert false : "Intermediate group id must not have nulls";
throw new IllegalStateException("Intermediate group id must not have nulls");
}
+
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
assert false : "Intermediate group id must not have nulls";
diff --git a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/GroupingAggregator.java b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/GroupingAggregator.java
index 7cb149e983510..e0d82b1f145b8 100644
--- a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/GroupingAggregator.java
+++ b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/GroupingAggregator.java
@@ -13,7 +13,6 @@
import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.compute.operator.DriverContext;
import org.elasticsearch.core.Releasable;
@@ -47,10 +46,12 @@ public GroupingAggregatorFunction.AddInput prepareProcessPage(SeenGroupIds seenG
public void add(int positionOffset, IntBlock groupIds) {
throw new IllegalStateException("Intermediate group id must not have nulls");
}
+
@Override
public void add(int positionOffset, IntArrayBlock groupIds) {
throw new IllegalStateException("Intermediate group id must not have nulls");
}
+
@Override
public void add(int positionOffset, IntBigArrayBlock groupIds) {
throw new IllegalStateException("Intermediate group id must not have nulls");
diff --git a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/GroupingAggregatorFunction.java b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/GroupingAggregatorFunction.java
index 7ee2925553518..556902174f213 100644
--- a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/GroupingAggregatorFunction.java
+++ b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/aggregation/GroupingAggregatorFunction.java
@@ -9,7 +9,6 @@
import org.elasticsearch.compute.data.Block;
import org.elasticsearch.compute.data.ConstantNullBlock;
-import org.elasticsearch.compute.data.ConstantNullVector;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
diff --git a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/operator/HashAggregationOperator.java b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/operator/HashAggregationOperator.java
index 542259768c2ca..2c6f9312e64bc 100644
--- a/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/operator/HashAggregationOperator.java
+++ b/x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/operator/HashAggregationOperator.java
@@ -22,9 +22,7 @@
import org.elasticsearch.compute.data.Block;
import org.elasticsearch.compute.data.IntArrayBlock;
import org.elasticsearch.compute.data.IntBigArrayBlock;
-import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
-import org.elasticsearch.compute.data.IntVectorBlock;
import org.elasticsearch.compute.data.Page;
import org.elasticsearch.core.Releasables;
import org.elasticsearch.core.TimeValue;
From 2aac546ccda217f653bde0d3ad9cbf979d762945 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Iv=C3=A1n=20Cea=20Fontenla?=
Date: Wed, 30 Apr 2025 19:39:03 +0200
Subject: [PATCH 07/11] Remove unused ClassName for IntVectorBlock
---
.../gen/src/main/java/org/elasticsearch/compute/gen/Types.java | 1 -
1 file changed, 1 deletion(-)
diff --git a/x-pack/plugin/esql/compute/gen/src/main/java/org/elasticsearch/compute/gen/Types.java b/x-pack/plugin/esql/compute/gen/src/main/java/org/elasticsearch/compute/gen/Types.java
index a86e521f5a1b5..a9f4eef521716 100644
--- a/x-pack/plugin/esql/compute/gen/src/main/java/org/elasticsearch/compute/gen/Types.java
+++ b/x-pack/plugin/esql/compute/gen/src/main/java/org/elasticsearch/compute/gen/Types.java
@@ -46,7 +46,6 @@ public class Types {
static final ClassName BOOLEAN_BLOCK = ClassName.get(DATA_PACKAGE, "BooleanBlock");
static final ClassName BYTES_REF_BLOCK = ClassName.get(DATA_PACKAGE, "BytesRefBlock");
static final ClassName INT_BLOCK = ClassName.get(DATA_PACKAGE, "IntBlock");
- static final ClassName INT_VECTOR_BLOCK = ClassName.get(DATA_PACKAGE, "IntVectorBlock");
static final ClassName INT_ARRAY_BLOCK = ClassName.get(DATA_PACKAGE, "IntArrayBlock");
static final ClassName INT_BIG_ARRAY_BLOCK = ClassName.get(DATA_PACKAGE, "IntBigArrayBlock");
static final ClassName LONG_BLOCK = ClassName.get(DATA_PACKAGE, "LongBlock");
From d95a81b2c778fdde9b780429d6e6da53f8902060 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Iv=C3=A1n=20Cea=20Fontenla?=
Date: Wed, 30 Apr 2025 20:05:13 +0200
Subject: [PATCH 08/11] Fixed tests
---
.../GroupingAggregatorFunctionTestCase.java | 15 ++-
.../aggregation/blockhash/AddPageTests.java | 24 ++++-
.../aggregation/blockhash/BlockHashTests.java | 53 +++++++++--
.../blockhash/CategorizeBlockHashTests.java | 92 +++++++++++++++----
4 files changed, 152 insertions(+), 32 deletions(-)
diff --git a/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/GroupingAggregatorFunctionTestCase.java b/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/GroupingAggregatorFunctionTestCase.java
index 0dccce6040e64..15247f5beaa2e 100644
--- a/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/GroupingAggregatorFunctionTestCase.java
+++ b/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/GroupingAggregatorFunctionTestCase.java
@@ -19,6 +19,8 @@
import org.elasticsearch.compute.data.DoubleBlock;
import org.elasticsearch.compute.data.ElementType;
import org.elasticsearch.compute.data.FloatBlock;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
import org.elasticsearch.compute.data.LongBlock;
@@ -648,8 +650,7 @@ public AddInput prepareProcessPage(SeenGroupIds ignoredSeenGroupIds, Page page)
return seen;
}, page);
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
+ private void addBlock(int positionOffset, IntBlock groupIds) {
for (int offset = 0; offset < groupIds.getPositionCount(); offset += emitChunkSize) {
try (IntBlock.Builder builder = blockFactory().newIntBlockBuilder(emitChunkSize)) {
int endP = Math.min(groupIds.getPositionCount(), offset + emitChunkSize);
@@ -682,6 +683,16 @@ public void add(int positionOffset, IntBlock groupIds) {
}
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addBlock(positionOffset, groupIds);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addBlock(positionOffset, groupIds);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
int[] chunk = new int[emitChunkSize];
diff --git a/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/blockhash/AddPageTests.java b/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/blockhash/AddPageTests.java
index fb8b01e68c6cc..c9628cc8074de 100644
--- a/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/blockhash/AddPageTests.java
+++ b/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/blockhash/AddPageTests.java
@@ -11,6 +11,8 @@
import org.elasticsearch.compute.aggregation.GroupingAggregatorFunction;
import org.elasticsearch.compute.data.BlockFactory;
import org.elasticsearch.compute.data.BlockFactoryTests;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
import org.elasticsearch.test.ESTestCase;
@@ -156,8 +158,7 @@ Added added(int positionOffset, int... ords) {
private class TestAddInput implements GroupingAggregatorFunction.AddInput {
private final List added = new ArrayList<>();
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
+ private void addBlock(int positionOffset, IntBlock groupIds) {
List> result = new ArrayList<>(groupIds.getPositionCount());
for (int p = 0; p < groupIds.getPositionCount(); p++) {
int valueCount = groupIds.getValueCount(p);
@@ -172,9 +173,19 @@ public void add(int positionOffset, IntBlock groupIds) {
added.add(new Added(positionOffset, result));
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addBlock(positionOffset, groupIds);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addBlock(positionOffset, groupIds);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
- add(positionOffset, groupIds.asBlock());
+ addBlock(positionOffset, groupIds.asBlock());
}
@Override
@@ -187,7 +198,12 @@ private class CountingAddInput implements GroupingAggregatorFunction.AddInput {
private int count;
@Override
- public void add(int positionOffset, IntBlock groupIds) {
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ count++;
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
count++;
}
diff --git a/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/blockhash/BlockHashTests.java b/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/blockhash/BlockHashTests.java
index ed86969a62227..4d77cd9aa234e 100644
--- a/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/blockhash/BlockHashTests.java
+++ b/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/blockhash/BlockHashTests.java
@@ -19,6 +19,8 @@
import org.elasticsearch.compute.data.BytesRefVector;
import org.elasticsearch.compute.data.DoubleBlock;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
import org.elasticsearch.compute.data.LongBlock;
@@ -1276,7 +1278,13 @@ public void close() {
) {
hash1.add(page, new GroupingAggregatorFunction.AddInput() {
@Override
- public void add(int positionOffset, IntBlock groupIds) {
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ groupIds.incRef();
+ output1.add(new Output(positionOffset, groupIds, null));
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
groupIds.incRef();
output1.add(new Output(positionOffset, groupIds, null));
}
@@ -1294,7 +1302,13 @@ public void close() {
});
hash2.add(page, new GroupingAggregatorFunction.AddInput() {
@Override
- public void add(int positionOffset, IntBlock groupIds) {
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ groupIds.incRef();
+ output2.add(new Output(positionOffset, groupIds, null));
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
groupIds.incRef();
output2.add(new Output(positionOffset, groupIds, null));
}
@@ -1380,7 +1394,12 @@ public void testTimeSeriesBlockHash() throws Exception {
Holder ords1 = new Holder<>();
hash1.add(page, new GroupingAggregatorFunction.AddInput() {
@Override
- public void add(int positionOffset, IntBlock groupIds) {
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ throw new AssertionError("time-series block hash should emit a vector");
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
throw new AssertionError("time-series block hash should emit a vector");
}
@@ -1397,8 +1416,7 @@ public void close() {
});
Holder ords2 = new Holder<>();
hash2.add(page, new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
+ private void addBlock(int positionOffset, IntBlock groupIds) {
// TODO: check why PackedValuesBlockHash doesn't emit a vector?
IntVector vector = groupIds.asVector();
assertNotNull("should emit a vector", vector);
@@ -1406,6 +1424,16 @@ public void add(int positionOffset, IntBlock groupIds) {
ords2.set(vector);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addBlock(positionOffset, groupIds);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addBlock(positionOffset, groupIds);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
groupIds.incRef();
@@ -1498,8 +1526,7 @@ private BlockHash buildBlockHash(int emitBatchSize, Block... values) {
static void hash(boolean collectKeys, BlockHash blockHash, Consumer callback, Block... values) {
blockHash.add(new Page(values), new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
+ private void addBlock(int positionOffset, IntBlock groupIds) {
OrdsAndKeys result = new OrdsAndKeys(
blockHash.toString(),
positionOffset,
@@ -1532,9 +1559,19 @@ public void add(int positionOffset, IntBlock groupIds) {
}
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addBlock(positionOffset, groupIds);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addBlock(positionOffset, groupIds);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
- add(positionOffset, groupIds.asBlock());
+ addBlock(positionOffset, groupIds.asBlock());
}
@Override
diff --git a/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/blockhash/CategorizeBlockHashTests.java b/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/blockhash/CategorizeBlockHashTests.java
index b1319e65e0989..842952f9ef8bd 100644
--- a/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/blockhash/CategorizeBlockHashTests.java
+++ b/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/blockhash/CategorizeBlockHashTests.java
@@ -25,6 +25,8 @@
import org.elasticsearch.compute.data.BytesRefBlock;
import org.elasticsearch.compute.data.BytesRefVector;
import org.elasticsearch.compute.data.ElementType;
+import org.elasticsearch.compute.data.IntArrayBlock;
+import org.elasticsearch.compute.data.IntBigArrayBlock;
import org.elasticsearch.compute.data.IntBlock;
import org.elasticsearch.compute.data.IntVector;
import org.elasticsearch.compute.data.LongBlock;
@@ -99,8 +101,7 @@ public void testCategorizeRaw() {
try (var hash = new CategorizeBlockHash(blockFactory, 0, AggregatorMode.SINGLE, analysisRegistry)) {
for (int i = randomInt(2); i < 3; i++) {
hash.add(page, new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
+ private void addBlock(int positionOffset, IntBlock groupIds) {
assertEquals(groupIds.getPositionCount(), positions);
assertEquals(1, groupIds.getInt(0));
@@ -115,9 +116,19 @@ public void add(int positionOffset, IntBlock groupIds) {
}
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addBlock(positionOffset, groupIds);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addBlock(positionOffset, groupIds);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
- add(positionOffset, groupIds.asBlock());
+ addBlock(positionOffset, groupIds.asBlock());
}
@Override
@@ -162,8 +173,7 @@ public void testCategorizeRawMultivalue() {
try (var hash = new CategorizeBlockHash(blockFactory, 0, AggregatorMode.SINGLE, analysisRegistry)) {
for (int i = randomInt(2); i < 3; i++) {
hash.add(page, new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
+ private void addBlock(int positionOffset, IntBlock groupIds) {
assertEquals(groupIds.getPositionCount(), positions);
assertThat(groupIds.getFirstValueIndex(0), equalTo(0));
@@ -185,9 +195,19 @@ public void add(int positionOffset, IntBlock groupIds) {
}
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addBlock(positionOffset, groupIds);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addBlock(positionOffset, groupIds);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
- add(positionOffset, groupIds.asBlock());
+ addBlock(positionOffset, groupIds.asBlock());
}
@Override
@@ -243,8 +263,7 @@ public void testCategorizeIntermediate() {
BlockHash rawHash2 = new CategorizeBlockHash(blockFactory, 0, AggregatorMode.INITIAL, analysisRegistry);
) {
rawHash1.add(page1, new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
+ private void addBlock(int positionOffset, IntBlock groupIds) {
assertEquals(groupIds.getPositionCount(), positions1);
assertEquals(1, groupIds.getInt(0));
assertEquals(2, groupIds.getInt(1));
@@ -258,9 +277,19 @@ public void add(int positionOffset, IntBlock groupIds) {
}
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addBlock(positionOffset, groupIds);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addBlock(positionOffset, groupIds);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
- add(positionOffset, groupIds.asBlock());
+ addBlock(positionOffset, groupIds.asBlock());
}
@Override
@@ -271,8 +300,7 @@ public void close() {
intermediatePage1 = new Page(rawHash1.getKeys()[0]);
rawHash2.add(page2, new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
+ private void addBlock(int positionOffset, IntBlock groupIds) {
assertEquals(groupIds.getPositionCount(), positions2);
assertEquals(1, groupIds.getInt(0));
assertEquals(2, groupIds.getInt(1));
@@ -281,9 +309,19 @@ public void add(int positionOffset, IntBlock groupIds) {
assertEquals(3, groupIds.getInt(4));
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addBlock(positionOffset, groupIds);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addBlock(positionOffset, groupIds);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
- add(positionOffset, groupIds.asBlock());
+ addBlock(positionOffset, groupIds.asBlock());
}
@Override
@@ -299,8 +337,7 @@ public void close() {
try (var intermediateHash = new CategorizeBlockHash(blockFactory, 0, AggregatorMode.FINAL, null)) {
intermediateHash.add(intermediatePage1, new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
+ private void addBlock(int positionOffset, IntBlock groupIds) {
List values = IntStream.range(0, groupIds.getPositionCount())
.map(groupIds::getInt)
.boxed()
@@ -312,9 +349,19 @@ public void add(int positionOffset, IntBlock groupIds) {
}
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addBlock(positionOffset, groupIds);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addBlock(positionOffset, groupIds);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
- add(positionOffset, groupIds.asBlock());
+ addBlock(positionOffset, groupIds.asBlock());
}
@Override
@@ -325,8 +372,7 @@ public void close() {
for (int i = randomInt(2); i < 3; i++) {
intermediateHash.add(intermediatePage2, new GroupingAggregatorFunction.AddInput() {
- @Override
- public void add(int positionOffset, IntBlock groupIds) {
+ private void addBlock(int positionOffset, IntBlock groupIds) {
List values = IntStream.range(0, groupIds.getPositionCount())
.map(groupIds::getInt)
.boxed()
@@ -336,9 +382,19 @@ public void add(int positionOffset, IntBlock groupIds) {
assertEquals(List.of(3, 1, 4), values);
}
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ addBlock(positionOffset, groupIds);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ addBlock(positionOffset, groupIds);
+ }
+
@Override
public void add(int positionOffset, IntVector groupIds) {
- add(positionOffset, groupIds.asBlock());
+ addBlock(positionOffset, groupIds.asBlock());
}
@Override
From 32588b56bf87f87c432a4f61576559461ee5a838 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Iv=C3=A1n=20Cea=20Fontenla?=
Date: Tue, 6 May 2025 18:18:01 +0200
Subject: [PATCH 09/11] Randomize groupIds block types to check most AddInput
cases
---
.../GroupingAggregatorFunctionTestCase.java | 78 +++++++++++++-
.../blockhash/WrappedBlockHash.java | 69 ++++++++++++
.../compute/data/BlockTypeRandomizer.java | 102 ++++++++++++++++++
3 files changed, 248 insertions(+), 1 deletion(-)
create mode 100644 x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/blockhash/WrappedBlockHash.java
create mode 100644 x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/data/BlockTypeRandomizer.java
diff --git a/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/GroupingAggregatorFunctionTestCase.java b/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/GroupingAggregatorFunctionTestCase.java
index 15247f5beaa2e..964cbaa743272 100644
--- a/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/GroupingAggregatorFunctionTestCase.java
+++ b/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/GroupingAggregatorFunctionTestCase.java
@@ -12,8 +12,10 @@
import org.elasticsearch.common.util.BitArray;
import org.elasticsearch.compute.ConstantBooleanExpressionEvaluator;
import org.elasticsearch.compute.aggregation.blockhash.BlockHash;
+import org.elasticsearch.compute.aggregation.blockhash.WrappedBlockHash;
import org.elasticsearch.compute.data.Block;
import org.elasticsearch.compute.data.BlockFactory;
+import org.elasticsearch.compute.data.BlockTypeRandomizer;
import org.elasticsearch.compute.data.BooleanBlock;
import org.elasticsearch.compute.data.BytesRefBlock;
import org.elasticsearch.compute.data.DoubleBlock;
@@ -39,6 +41,7 @@
import org.elasticsearch.compute.test.TestBlockFactory;
import org.elasticsearch.core.Nullable;
import org.elasticsearch.core.Releasables;
+import org.elasticsearch.index.analysis.AnalysisRegistry;
import org.elasticsearch.xpack.esql.core.type.DataType;
import org.hamcrest.Matcher;
@@ -47,6 +50,7 @@
import java.util.SortedSet;
import java.util.TreeSet;
import java.util.function.Function;
+import java.util.function.Supplier;
import java.util.stream.DoubleStream;
import java.util.stream.IntStream;
import java.util.stream.LongStream;
@@ -104,7 +108,7 @@ private Operator.OperatorFactory simpleWithMode(
if (randomBoolean()) {
supplier = chunkGroups(emitChunkSize, supplier);
}
- return new HashAggregationOperator.HashAggregationOperatorFactory(
+ return new RandomizingHashAggregationOperatorFactory(
List.of(new BlockHash.GroupSpec(0, ElementType.LONG)),
mode,
List.of(supplier.groupingAggregatorFactory(mode, channels(mode))),
@@ -777,4 +781,76 @@ public String describe() {
};
}
+ private record RandomizingHashAggregationOperatorFactory(
+ List groups,
+ AggregatorMode aggregatorMode,
+ List aggregators,
+ int maxPageSize,
+ AnalysisRegistry analysisRegistry
+ ) implements Operator.OperatorFactory {
+
+ @Override
+ public Operator get(DriverContext driverContext) {
+ Supplier blockHashSupplier = () -> {
+ BlockHash blockHash = groups.stream().anyMatch(BlockHash.GroupSpec::isCategorize)
+ ? BlockHash.buildCategorizeBlockHash(
+ groups,
+ aggregatorMode,
+ driverContext.blockFactory(),
+ analysisRegistry,
+ maxPageSize
+ )
+ : BlockHash.build(groups, driverContext.blockFactory(), maxPageSize, false);
+
+ return new WrappedBlockHash(driverContext.blockFactory(), blockHash) {
+ @Override
+ public void add(Page page, GroupingAggregatorFunction.AddInput addInput) {
+ blockHash.add(page, new GroupingAggregatorFunction.AddInput() {
+ @Override
+ public void add(int positionOffset, IntBlock groupIds) {
+ IntBlock newGroupIds = aggregatorMode.isInputPartial()
+ ? groupIds
+ : BlockTypeRandomizer.randomizeBlockType(groupIds);
+ addInput.add(positionOffset, newGroupIds);
+ }
+
+ @Override
+ public void add(int positionOffset, IntArrayBlock groupIds) {
+ add(positionOffset, (IntBlock) groupIds);
+ }
+
+ @Override
+ public void add(int positionOffset, IntBigArrayBlock groupIds) {
+ add(positionOffset, (IntBlock) groupIds);
+ }
+
+ @Override
+ public void add(int positionOffset, IntVector groupIds) {
+ add(positionOffset, groupIds.asBlock());
+ }
+
+ @Override
+ public void close() {
+ addInput.close();
+ }
+ });
+ }
+ };
+ };
+
+ return new HashAggregationOperator(aggregators, blockHashSupplier, driverContext);
+ }
+
+ @Override
+ public String describe() {
+ return new HashAggregationOperator.HashAggregationOperatorFactory(
+ groups,
+ aggregatorMode,
+ aggregators,
+ maxPageSize,
+ analysisRegistry
+ ).describe();
+ }
+ }
+
}
diff --git a/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/blockhash/WrappedBlockHash.java b/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/blockhash/WrappedBlockHash.java
new file mode 100644
index 0000000000000..d36355814a697
--- /dev/null
+++ b/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/blockhash/WrappedBlockHash.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+package org.elasticsearch.compute.aggregation.blockhash;
+
+import org.elasticsearch.common.unit.ByteSizeValue;
+import org.elasticsearch.common.util.BigArrays;
+import org.elasticsearch.common.util.BitArray;
+import org.elasticsearch.compute.aggregation.GroupingAggregatorFunction;
+import org.elasticsearch.compute.data.Block;
+import org.elasticsearch.compute.data.BlockFactory;
+import org.elasticsearch.compute.data.IntBlock;
+import org.elasticsearch.compute.data.IntVector;
+import org.elasticsearch.compute.data.Page;
+import org.elasticsearch.core.ReleasableIterator;
+
+/**
+ * A test BlockHash that wraps another one.
+ *
+ * Its methods can be overridden to implement custom behaviours or checks.
+ *
+ */
+public class WrappedBlockHash extends BlockHash {
+ protected BlockHash blockHash;
+
+ public WrappedBlockHash(BlockFactory blockFactory, BlockHash blockHash) {
+ super(blockFactory);
+ this.blockHash = blockHash;
+ }
+
+ @Override
+ public void add(Page page, GroupingAggregatorFunction.AddInput addInput) {
+ blockHash.add(page, addInput);
+ }
+
+ @Override
+ public ReleasableIterator lookup(Page page, ByteSizeValue targetBlockSize) {
+ return blockHash.lookup(page, targetBlockSize);
+ }
+
+ @Override
+ public Block[] getKeys() {
+ return blockHash.getKeys();
+ }
+
+ @Override
+ public IntVector nonEmpty() {
+ return blockHash.nonEmpty();
+ }
+
+ @Override
+ public BitArray seenGroupIds(BigArrays bigArrays) {
+ return blockHash.seenGroupIds(bigArrays);
+ }
+
+ @Override
+ public void close() {
+ blockHash.close();
+ }
+
+ @Override
+ public String toString() {
+ return blockHash.toString();
+ }
+}
diff --git a/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/data/BlockTypeRandomizer.java b/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/data/BlockTypeRandomizer.java
new file mode 100644
index 0000000000000..d6a1c866df650
--- /dev/null
+++ b/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/data/BlockTypeRandomizer.java
@@ -0,0 +1,102 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+package org.elasticsearch.compute.data;
+
+import org.elasticsearch.compute.test.TestBlockFactory;
+
+import java.util.BitSet;
+
+import static org.elasticsearch.test.ESTestCase.randomIntBetween;
+
+public class BlockTypeRandomizer {
+ private BlockTypeRandomizer() {}
+
+ /**
+ * Returns a block with the same contents, but with a randomized type (Constant, vector, big-array...).
+ *
+ * The new block uses a non-breaking block builder, and doesn't increment the circuit breaking.
+ * This is done to avoid randomly using more memory in tests that expect a deterministic memory usage.
+ *
+ */
+ public static IntBlock randomizeBlockType(IntBlock block) {
+ // Just to track the randomization
+ int classCount = 4;
+
+ BlockFactory blockFactory = TestBlockFactory.getNonBreakingInstance();
+
+ //
+ // ConstantNullBlock. It requires all positions to be null
+ //
+ if (randomIntBetween(0, --classCount) == 0 && block.areAllValuesNull()) {
+ if (block instanceof ConstantNullBlock) {
+ return block;
+ }
+ return new ConstantNullBlock(block.getPositionCount(), blockFactory);
+ }
+
+ //
+ // IntVectorBlock. It doesn't allow nulls or multivalues
+ //
+ if (randomIntBetween(0, --classCount) == 0 && block.doesHaveMultivaluedFields() == false && block.mayHaveNulls() == false) {
+ if (block instanceof IntVectorBlock) {
+ return block;
+ }
+
+ int[] values = new int[block.getPositionCount()];
+ for (int i = 0; i < values.length; i++) {
+ values[i] = block.getInt(i);
+ }
+
+ return new IntVectorBlock(new IntArrayVector(values, block.getPositionCount(), blockFactory));
+ }
+
+ // Both IntArrayBlock and IntBigArrayBlock need a nullsBitSet and a firstValueIndexes int[]
+ int[] firstValueIndexes = new int[block.getPositionCount() + 1];
+ BitSet nullsMask = new BitSet(block.getPositionCount());
+ for (int i = 0; i < block.getPositionCount(); i++) {
+ firstValueIndexes[i] = block.getFirstValueIndex(i);
+
+ if (block.isNull(i)) {
+ nullsMask.set(i);
+ }
+ }
+ int totalValues = block.getFirstValueIndex(block.getPositionCount() - 1) + block.getValueCount(block.getPositionCount() - 1);
+ firstValueIndexes[firstValueIndexes.length - 1] = totalValues;
+
+ //
+ // IntArrayBlock
+ //
+ if (randomIntBetween(0, --classCount) == 0) {
+ if (block instanceof IntVectorBlock) {
+ return block;
+ }
+
+ int[] values = new int[totalValues];
+ for (int i = 0; i < values.length; i++) {
+ values[i] = block.getInt(i);
+ }
+
+ return new IntArrayBlock(values, block.getPositionCount(), firstValueIndexes, nullsMask, block.mvOrdering(), blockFactory);
+ }
+ assert classCount == 1;
+
+ //
+ // IntBigArrayBlock
+ //
+ if (block instanceof IntBigArrayBlock) {
+ return block;
+ }
+
+ var intArray = blockFactory.bigArrays().newIntArray(totalValues);
+ for (int i = 0; i < block.getPositionCount(); i++) {
+ intArray.set(i, block.getInt(i));
+ }
+
+ return new IntBigArrayBlock(intArray, block.getPositionCount(), firstValueIndexes, nullsMask, block.mvOrdering(), blockFactory);
+ }
+}
From 89a8bcf709babc1107b4d22a0af5472dc21ba89f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Iv=C3=A1n=20Cea=20Fontenla?=
Date: Tue, 6 May 2025 18:25:17 +0200
Subject: [PATCH 10/11] Minor fix and added some docs
---
.../aggregation/GroupingAggregatorFunctionTestCase.java | 8 ++++++++
.../elasticsearch/compute/data/BlockTypeRandomizer.java | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/GroupingAggregatorFunctionTestCase.java b/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/GroupingAggregatorFunctionTestCase.java
index 964cbaa743272..1c259884998cd 100644
--- a/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/GroupingAggregatorFunctionTestCase.java
+++ b/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/GroupingAggregatorFunctionTestCase.java
@@ -781,6 +781,14 @@ public String describe() {
};
}
+ /**
+ * Custom {@link HashAggregationOperator.HashAggregationOperatorFactory} implementation that
+ * randomizes the GroupIds block type passed to AddInput.
+ *
+ * This helps testing the different overloads of
+ * {@link org.elasticsearch.compute.aggregation.GroupingAggregatorFunction.AddInput#add}
+ *
+ */
private record RandomizingHashAggregationOperatorFactory(
List groups,
AggregatorMode aggregatorMode,
diff --git a/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/data/BlockTypeRandomizer.java b/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/data/BlockTypeRandomizer.java
index d6a1c866df650..9640cbb2b44ea 100644
--- a/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/data/BlockTypeRandomizer.java
+++ b/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/data/BlockTypeRandomizer.java
@@ -72,7 +72,7 @@ public static IntBlock randomizeBlockType(IntBlock block) {
// IntArrayBlock
//
if (randomIntBetween(0, --classCount) == 0) {
- if (block instanceof IntVectorBlock) {
+ if (block instanceof IntArrayBlock) {
return block;
}
From 2c95ced9cf1d74f0593035f84124584269a6991a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Iv=C3=A1n=20Cea=20Fontenla?=
Date: Tue, 6 May 2025 18:28:16 +0200
Subject: [PATCH 11/11] Renamed BlockHashWrapper
---
.../aggregation/GroupingAggregatorFunctionTestCase.java | 4 ++--
.../{WrappedBlockHash.java => BlockHashWrapper.java} | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
rename x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/blockhash/{WrappedBlockHash.java => BlockHashWrapper.java} (93%)
diff --git a/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/GroupingAggregatorFunctionTestCase.java b/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/GroupingAggregatorFunctionTestCase.java
index 1c259884998cd..9b8246be49799 100644
--- a/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/GroupingAggregatorFunctionTestCase.java
+++ b/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/GroupingAggregatorFunctionTestCase.java
@@ -12,7 +12,7 @@
import org.elasticsearch.common.util.BitArray;
import org.elasticsearch.compute.ConstantBooleanExpressionEvaluator;
import org.elasticsearch.compute.aggregation.blockhash.BlockHash;
-import org.elasticsearch.compute.aggregation.blockhash.WrappedBlockHash;
+import org.elasticsearch.compute.aggregation.blockhash.BlockHashWrapper;
import org.elasticsearch.compute.data.Block;
import org.elasticsearch.compute.data.BlockFactory;
import org.elasticsearch.compute.data.BlockTypeRandomizer;
@@ -810,7 +810,7 @@ public Operator get(DriverContext driverContext) {
)
: BlockHash.build(groups, driverContext.blockFactory(), maxPageSize, false);
- return new WrappedBlockHash(driverContext.blockFactory(), blockHash) {
+ return new BlockHashWrapper(driverContext.blockFactory(), blockHash) {
@Override
public void add(Page page, GroupingAggregatorFunction.AddInput addInput) {
blockHash.add(page, new GroupingAggregatorFunction.AddInput() {
diff --git a/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/blockhash/WrappedBlockHash.java b/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/blockhash/BlockHashWrapper.java
similarity index 93%
rename from x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/blockhash/WrappedBlockHash.java
rename to x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/blockhash/BlockHashWrapper.java
index d36355814a697..0c93b6ff111cc 100644
--- a/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/blockhash/WrappedBlockHash.java
+++ b/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/aggregation/blockhash/BlockHashWrapper.java
@@ -24,10 +24,10 @@
* Its methods can be overridden to implement custom behaviours or checks.
*
*/
-public class WrappedBlockHash extends BlockHash {
+public abstract class BlockHashWrapper extends BlockHash {
protected BlockHash blockHash;
- public WrappedBlockHash(BlockFactory blockFactory, BlockHash blockHash) {
+ public BlockHashWrapper(BlockFactory blockFactory, BlockHash blockHash) {
super(blockFactory);
this.blockHash = blockHash;
}