Skip to content

Commit f0fe30c

Browse files
committed
cleanup
1 parent 4df983b commit f0fe30c

File tree

2 files changed

+46
-205
lines changed

2 files changed

+46
-205
lines changed

x-pack/plugin/esql/compute/gen/src/main/java/org/elasticsearch/compute/gen/AggregatorImplementer.java

Lines changed: 5 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -41,24 +41,13 @@
4141
import static org.elasticsearch.compute.gen.Types.BIG_ARRAYS;
4242
import static org.elasticsearch.compute.gen.Types.BLOCK;
4343
import static org.elasticsearch.compute.gen.Types.BLOCK_ARRAY;
44-
import static org.elasticsearch.compute.gen.Types.BOOLEAN_BLOCK;
4544
import static org.elasticsearch.compute.gen.Types.BOOLEAN_VECTOR;
4645
import static org.elasticsearch.compute.gen.Types.BYTES_REF;
47-
import static org.elasticsearch.compute.gen.Types.BYTES_REF_BLOCK;
48-
import static org.elasticsearch.compute.gen.Types.BYTES_REF_VECTOR;
49-
import static org.elasticsearch.compute.gen.Types.DOUBLE_BLOCK;
50-
import static org.elasticsearch.compute.gen.Types.DOUBLE_VECTOR;
5146
import static org.elasticsearch.compute.gen.Types.DRIVER_CONTEXT;
5247
import static org.elasticsearch.compute.gen.Types.ELEMENT_TYPE;
53-
import static org.elasticsearch.compute.gen.Types.FLOAT_BLOCK;
54-
import static org.elasticsearch.compute.gen.Types.FLOAT_VECTOR;
5548
import static org.elasticsearch.compute.gen.Types.INTERMEDIATE_STATE_DESC;
56-
import static org.elasticsearch.compute.gen.Types.INT_BLOCK;
57-
import static org.elasticsearch.compute.gen.Types.INT_VECTOR;
5849
import static org.elasticsearch.compute.gen.Types.LIST_AGG_FUNC_DESC;
5950
import static org.elasticsearch.compute.gen.Types.LIST_INTEGER;
60-
import static org.elasticsearch.compute.gen.Types.LONG_BLOCK;
61-
import static org.elasticsearch.compute.gen.Types.LONG_VECTOR;
6251
import static org.elasticsearch.compute.gen.Types.PAGE;
6352
import static org.elasticsearch.compute.gen.Types.WARNINGS;
6453
import static org.elasticsearch.compute.gen.Types.blockType;
@@ -153,44 +142,18 @@ static String valueType(ExecutableElement init, ExecutableElement combine) {
153142
return combine.getParameters().get(combine.getParameters().size() - 1).asType().toString();
154143
}
155144
String initReturn = init.getReturnType().toString();
156-
switch (initReturn) {
157-
case "double":
158-
return "double";
159-
case "float":
160-
return "float";
161-
case "long":
162-
return "long";
163-
case "int":
164-
return "int";
165-
case "boolean":
166-
return "boolean";
167-
default:
168-
throw new IllegalArgumentException("unknown primitive type for " + initReturn);
145+
if (Types.isPrimitive(initReturn)) {
146+
return initReturn;
169147
}
148+
throw new IllegalArgumentException("unknown primitive type for " + initReturn);
170149
}
171150

172151
static ClassName valueBlockType(ExecutableElement init, ExecutableElement combine) {
173-
return switch (valueType(init, combine)) {
174-
case "boolean" -> BOOLEAN_BLOCK;
175-
case "double" -> DOUBLE_BLOCK;
176-
case "float" -> FLOAT_BLOCK;
177-
case "long" -> LONG_BLOCK;
178-
case "int", "int[]" -> INT_BLOCK;
179-
case "org.apache.lucene.util.BytesRef" -> BYTES_REF_BLOCK;
180-
default -> throw new IllegalArgumentException("unknown block type for " + valueType(init, combine));
181-
};
152+
return Types.blockType(valueType(init, combine));
182153
}
183154

184155
static ClassName valueVectorType(ExecutableElement init, ExecutableElement combine) {
185-
return switch (valueType(init, combine)) {
186-
case "boolean" -> BOOLEAN_VECTOR;
187-
case "double" -> DOUBLE_VECTOR;
188-
case "float" -> FLOAT_VECTOR;
189-
case "long" -> LONG_VECTOR;
190-
case "int", "int[]" -> INT_VECTOR;
191-
case "org.apache.lucene.util.BytesRef" -> BYTES_REF_VECTOR;
192-
default -> throw new IllegalArgumentException("unknown vector type for " + valueType(init, combine));
193-
};
156+
return Types.vectorType(valueType(init, combine));
194157
}
195158

196159
public static String capitalize(String s) {

x-pack/plugin/esql/compute/gen/src/main/java/org/elasticsearch/compute/gen/Types.java

Lines changed: 41 additions & 163 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@
1515
import java.util.ArrayDeque;
1616
import java.util.Deque;
1717
import java.util.List;
18+
import java.util.Map;
19+
import java.util.stream.Collectors;
20+
import java.util.stream.Stream;
1821

1922
import javax.lang.model.type.TypeMirror;
2023

@@ -75,27 +78,6 @@ public class Types {
7578
static final ClassName DOUBLE_VECTOR_FIXED_BUILDER = ClassName.get(DATA_PACKAGE, "DoubleVector", "FixedBuilder");
7679
static final ClassName FLOAT_VECTOR_FIXED_BUILDER = ClassName.get(DATA_PACKAGE, "FloatVector", "FixedBuilder");
7780

78-
static final ClassName BOOLEAN_ARRAY_VECTOR = ClassName.get(DATA_PACKAGE, "BooleanArrayVector");
79-
static final ClassName BYTES_REF_ARRAY_VECTOR = ClassName.get(DATA_PACKAGE, "BytesRefArrayVector");
80-
static final ClassName INT_ARRAY_VECTOR = ClassName.get(DATA_PACKAGE, "IntArrayVector");
81-
static final ClassName LONG_ARRAY_VECTOR = ClassName.get(DATA_PACKAGE, "LongArrayVector");
82-
static final ClassName DOUBLE_ARRAY_VECTOR = ClassName.get(DATA_PACKAGE, "DoubleArrayVector");
83-
static final ClassName FLOAT_ARRAY_VECTOR = ClassName.get(DATA_PACKAGE, "FloatArrayVector");
84-
85-
static final ClassName BOOLEAN_ARRAY_BLOCK = ClassName.get(DATA_PACKAGE, "BooleanArrayBlock");
86-
static final ClassName BYTES_REF_ARRAY_BLOCK = ClassName.get(DATA_PACKAGE, "BytesRefArrayBlock");
87-
static final ClassName INT_ARRAY_BLOCK = ClassName.get(DATA_PACKAGE, "IntArrayBlock");
88-
static final ClassName LONG_ARRAY_BLOCK = ClassName.get(DATA_PACKAGE, "LongArrayBlock");
89-
static final ClassName DOUBLE_ARRAY_BLOCK = ClassName.get(DATA_PACKAGE, "DoubleArrayBlock");
90-
static final ClassName FLOAT_ARRAY_BLOCK = ClassName.get(DATA_PACKAGE, "FloatArrayBlock");
91-
92-
static final ClassName BOOLEAN_CONSTANT_VECTOR = ClassName.get(DATA_PACKAGE, "ConstantBooleanVector");
93-
static final ClassName BYTES_REF_CONSTANT_VECTOR = ClassName.get(DATA_PACKAGE, "ConstantBytesRefVector");
94-
static final ClassName INT_CONSTANT_VECTOR = ClassName.get(DATA_PACKAGE, "ConstantIntVector");
95-
static final ClassName LONG_CONSTANT_VECTOR = ClassName.get(DATA_PACKAGE, "ConstantLongVector");
96-
static final ClassName DOUBLE_CONSTANT_VECTOR = ClassName.get(DATA_PACKAGE, "ConstantDoubleVector");
97-
static final ClassName FLOAT_CONSTANT_VECTOR = ClassName.get(DATA_PACKAGE, "ConstantFloatVector");
98-
9981
static final ClassName AGGREGATOR_FUNCTION = ClassName.get(AGGREGATION_PACKAGE, "AggregatorFunction");
10082
static final ClassName AGGREGATOR_FUNCTION_SUPPLIER = ClassName.get(AGGREGATION_PACKAGE, "AggregatorFunctionSupplier");
10183
static final ClassName GROUPING_AGGREGATOR_FUNCTION = ClassName.get(AGGREGATION_PACKAGE, "GroupingAggregatorFunction");
@@ -138,104 +120,57 @@ public class Types {
138120
static final ClassName RELEASABLE = ClassName.get("org.elasticsearch.core", "Releasable");
139121
static final ClassName RELEASABLES = ClassName.get("org.elasticsearch.core", "Releasables");
140122

141-
static TypeName fromString(String type) {
142-
return switch (type) {
143-
case "boolean", "BOOLEAN" -> TypeName.BOOLEAN;
144-
case "int", "INT" -> TypeName.INT;
145-
case "long", "LONG" -> TypeName.LONG;
146-
case "float", "FLOAT" -> TypeName.FLOAT;
147-
case "double", "DOUBLE" -> TypeName.DOUBLE;
148-
case "org.apache.lucene.util.BytesRef", "BYTES_REF" -> BYTES_REF;
149-
default -> throw new IllegalArgumentException("unknown type [" + type + "]");
123+
private record TypeDef(TypeName type, String alias, ClassName block, ClassName vector) {
124+
125+
public static TypeDef of(TypeName type, String alias, String block, String vector) {
126+
return new TypeDef(type, alias, ClassName.get(DATA_PACKAGE, block), ClassName.get(DATA_PACKAGE, vector));
127+
}
128+
}
129+
130+
private static final Map<String, TypeDef> TYPES = Stream.of(
131+
TypeDef.of(TypeName.BOOLEAN, "BOOLEAN", "BooleanBlock", "BooleanVector"),
132+
TypeDef.of(TypeName.INT, "INT", "IntBlock", "IntVector"),
133+
TypeDef.of(TypeName.LONG, "LONG", "LongBlock", "LongVector"),
134+
TypeDef.of(TypeName.FLOAT, "FLOAT", "FloatBlock", "FloatVector"),
135+
TypeDef.of(TypeName.DOUBLE, "DOUBLE", "DoubleBlock", "DoubleVector"),
136+
TypeDef.of(BYTES_REF, "BYTES_REF", "BytesRefBlock", "BytesRefVector")
137+
)
138+
.flatMap(def -> Stream.of(def.type.toString(), def.type + "[]", def.alias).map(alias -> Map.entry(alias, def)))
139+
.collect(Collectors.toUnmodifiableMap(Map.Entry::getKey, Map.Entry::getValue));
140+
141+
private static TypeDef findRequired(String name, String kind) {
142+
TypeDef typeDef = TYPES.get(name);
143+
if (typeDef == null) {
144+
throw new IllegalArgumentException("unknown " + kind + " type [" + name + "]");
145+
}
146+
return typeDef;
147+
}
148+
149+
static boolean isPrimitive(String name) {
150+
return switch (name) {
151+
case "boolean", "int", "long", "float", "double" -> true;
152+
default -> false;
150153
};
151154
}
152155

156+
static TypeName fromString(String type) {
157+
return findRequired(type, "plain").type;
158+
}
159+
153160
static ClassName blockType(TypeName elementType) {
154-
if (elementType.equals(TypeName.BOOLEAN)) {
155-
return BOOLEAN_BLOCK;
156-
}
157-
if (elementType.equals(TypeName.INT)) {
158-
return INT_BLOCK;
159-
}
160-
if (elementType.equals(TypeName.LONG)) {
161-
return LONG_BLOCK;
162-
}
163-
if (elementType.equals(TypeName.FLOAT)) {
164-
return FLOAT_BLOCK;
165-
}
166-
if (elementType.equals(TypeName.DOUBLE)) {
167-
return DOUBLE_BLOCK;
168-
}
169-
if (elementType.equals(BYTES_REF)) {
170-
return BYTES_REF_BLOCK;
171-
}
172-
throw new IllegalArgumentException("unknown block type for [" + elementType + "]");
161+
return blockType(elementType.toString());
173162
}
174163

175164
static ClassName blockType(String elementType) {
176-
if (elementType.equalsIgnoreCase(TypeName.BOOLEAN.toString())) {
177-
return BOOLEAN_BLOCK;
178-
}
179-
if (elementType.equalsIgnoreCase("BYTES_REF")) {
180-
return BYTES_REF_BLOCK;
181-
}
182-
if (elementType.equalsIgnoreCase(TypeName.INT.toString())) {
183-
return INT_BLOCK;
184-
}
185-
if (elementType.equalsIgnoreCase(TypeName.LONG.toString())) {
186-
return LONG_BLOCK;
187-
}
188-
if (elementType.equalsIgnoreCase(TypeName.DOUBLE.toString())) {
189-
return DOUBLE_BLOCK;
190-
}
191-
if (elementType.equalsIgnoreCase(TypeName.FLOAT.toString())) {
192-
return FLOAT_BLOCK;
193-
}
194-
throw new IllegalArgumentException("unknown vector type for [" + elementType + "]");
165+
return findRequired(elementType, "block").block;
195166
}
196167

197168
static ClassName vectorType(TypeName elementType) {
198-
if (elementType.equals(TypeName.BOOLEAN)) {
199-
return BOOLEAN_VECTOR;
200-
}
201-
if (elementType.equals(BYTES_REF)) {
202-
return BYTES_REF_VECTOR;
203-
}
204-
if (elementType.equals(TypeName.INT)) {
205-
return INT_VECTOR;
206-
}
207-
if (elementType.equals(TypeName.LONG)) {
208-
return LONG_VECTOR;
209-
}
210-
if (elementType.equals(TypeName.DOUBLE)) {
211-
return DOUBLE_VECTOR;
212-
}
213-
if (elementType.equals(TypeName.FLOAT)) {
214-
return FLOAT_VECTOR;
215-
}
216-
throw new IllegalArgumentException("unknown vector type for [" + elementType + "]");
169+
return vectorType(elementType.toString());
217170
}
218171

219172
static ClassName vectorType(String elementType) {
220-
if (elementType.equalsIgnoreCase(TypeName.BOOLEAN.toString())) {
221-
return BOOLEAN_VECTOR;
222-
}
223-
if (elementType.equalsIgnoreCase("BYTES_REF")) {
224-
return BYTES_REF_VECTOR;
225-
}
226-
if (elementType.equalsIgnoreCase(TypeName.INT.toString())) {
227-
return INT_VECTOR;
228-
}
229-
if (elementType.equalsIgnoreCase(TypeName.LONG.toString())) {
230-
return LONG_VECTOR;
231-
}
232-
if (elementType.equalsIgnoreCase(TypeName.DOUBLE.toString())) {
233-
return DOUBLE_VECTOR;
234-
}
235-
if (elementType.equalsIgnoreCase(TypeName.FLOAT.toString())) {
236-
return FLOAT_VECTOR;
237-
}
238-
throw new IllegalArgumentException("unknown vector type for [" + elementType + "]");
173+
return findRequired(elementType, "vector").vector;
239174
}
240175

241176
static ClassName builderType(TypeName resultType) {
@@ -297,63 +232,6 @@ static ClassName vectorFixedBuilderType(TypeName elementType) {
297232
throw new IllegalArgumentException("unknown vector fixed builder type for [" + elementType + "]");
298233
}
299234

300-
static ClassName arrayVectorType(TypeName elementType) {
301-
if (elementType.equals(TypeName.BOOLEAN)) {
302-
return BOOLEAN_ARRAY_VECTOR;
303-
}
304-
if (elementType.equals(BYTES_REF)) {
305-
return BYTES_REF_ARRAY_VECTOR;
306-
}
307-
if (elementType.equals(TypeName.INT)) {
308-
return INT_ARRAY_VECTOR;
309-
}
310-
if (elementType.equals(TypeName.LONG)) {
311-
return LONG_ARRAY_VECTOR;
312-
}
313-
if (elementType.equals(TypeName.DOUBLE)) {
314-
return DOUBLE_ARRAY_VECTOR;
315-
}
316-
throw new IllegalArgumentException("unknown vector type for [" + elementType + "]");
317-
}
318-
319-
static ClassName arrayBlockType(TypeName elementType) {
320-
if (elementType.equals(TypeName.BOOLEAN)) {
321-
return BOOLEAN_ARRAY_BLOCK;
322-
}
323-
if (elementType.equals(BYTES_REF)) {
324-
return BYTES_REF_ARRAY_BLOCK;
325-
}
326-
if (elementType.equals(TypeName.INT)) {
327-
return INT_ARRAY_BLOCK;
328-
}
329-
if (elementType.equals(TypeName.LONG)) {
330-
return LONG_ARRAY_BLOCK;
331-
}
332-
if (elementType.equals(TypeName.DOUBLE)) {
333-
return DOUBLE_ARRAY_BLOCK;
334-
}
335-
throw new IllegalArgumentException("unknown vector type for [" + elementType + "]");
336-
}
337-
338-
static ClassName constantVectorType(TypeName elementType) {
339-
if (elementType.equals(TypeName.BOOLEAN)) {
340-
return BOOLEAN_CONSTANT_VECTOR;
341-
}
342-
if (elementType.equals(BYTES_REF)) {
343-
return BYTES_REF_CONSTANT_VECTOR;
344-
}
345-
if (elementType.equals(TypeName.INT)) {
346-
return INT_CONSTANT_VECTOR;
347-
}
348-
if (elementType.equals(TypeName.LONG)) {
349-
return LONG_CONSTANT_VECTOR;
350-
}
351-
if (elementType.equals(TypeName.DOUBLE)) {
352-
return DOUBLE_CONSTANT_VECTOR;
353-
}
354-
throw new IllegalArgumentException("unknown vector type for [" + elementType + "]");
355-
}
356-
357235
static TypeName elementType(TypeName t) {
358236
if (t.equals(BOOLEAN_BLOCK) || t.equals(BOOLEAN_VECTOR) || t.equals(BOOLEAN_BLOCK_BUILDER)) {
359237
return TypeName.BOOLEAN;

0 commit comments

Comments
 (0)