Skip to content

Commit caa108c

Browse files
committed
Regenerate evaluators for ram usage estimation and use new Factory structure in EvalOperator
1 parent f9c48c6 commit caa108c

File tree

8 files changed

+232
-92
lines changed

8 files changed

+232
-92
lines changed

x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/operator/EvalOperator.java

Lines changed: 127 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -220,13 +220,13 @@ record Factory() implements ExpressionEvaluator.Factory {
220220
@Override
221221
public ConstantTrueEvaluator get(DriverContext context) {
222222
return new ConstantTrueEvaluator(context);
223-
};
223+
}
224224

225225
@Override
226226
public String toString() {
227227
return NAME;
228228
}
229-
};
229+
}
230230
}
231231

232232
public static final ExpressionEvaluator.Factory CONSTANT_TRUE_FACTORY = new ConstantTrueEvaluator.Factory();
@@ -252,7 +252,7 @@ public String toString() {
252252
public long baseRamBytesUsed() {
253253
return BASE_RAM_BYTES_USED;
254254
}
255-
255+
256256
record Factory() implements ExpressionEvaluator.Factory {
257257
@Override
258258
public ConstantFalseEvaluator get(DriverContext context) {
@@ -265,131 +265,166 @@ public String toString() {
265265
}
266266
};
267267
}
268-
};
269268

270269
public static final ExpressionEvaluator.Factory CONSTANT_FALSE_FACTORY = new ConstantFalseEvaluator.Factory();
271270

272-
public static ExpressionEvaluator.Factory DoubleFactory(double value) {
273-
return new ExpressionEvaluator.Factory() {
271+
private record ConstantDoubleEvaluator(DriverContext context, double value) implements ExpressionEvaluator {
272+
273+
private static final String NAME = "ConstantDouble";
274+
private static final long BASE_RAM_BYTES_USED = RamUsageEstimator.shallowSizeOfInstance(ConstantIntegerEvaluator.class);
275+
276+
@Override
277+
public Block eval(Page page) {
278+
return context.blockFactory().newConstantDoubleBlockWith(value, page.getPositionCount());
279+
}
280+
281+
@Override
282+
public void close() {}
283+
284+
@Override
285+
public long baseRamBytesUsed() {
286+
return BASE_RAM_BYTES_USED;
287+
}
288+
289+
@Override
290+
public String toString() {
291+
return NAME + "[" + value + "]";
292+
}
293+
294+
record Factory(double value) implements ExpressionEvaluator.Factory {
274295
@Override
275-
public ExpressionEvaluator get(DriverContext driverContext) {
276-
return new ExpressionEvaluator() {
277-
@Override
278-
public Block eval(Page page) {
279-
return driverContext.blockFactory().newConstantDoubleBlockWith(value, page.getPositionCount());
280-
}
281-
282-
@Override
283-
public void close() {
284-
285-
}
286-
287-
@Override
288-
public String toString() {
289-
return CONSTANT_DOUBLE_NAME + "[" + value + "]";
290-
}
291-
};
296+
public ExpressionEvaluator get(DriverContext context) {
297+
return new ConstantDoubleEvaluator(context, value);
292298
}
293299

294300
@Override
295301
public String toString() {
296-
return CONSTANT_DOUBLE_NAME + "[" + value + "]";
302+
return NAME + "[" + value + "]";
297303
}
298-
};
304+
}
305+
}
306+
307+
public static ExpressionEvaluator.Factory DoubleFactory(double value) {
308+
return new ConstantDoubleEvaluator.Factory(value);
299309
}
300310

301-
private static final String CONSTANT_DOUBLE_NAME = "ConstantDouble";
311+
private record ConstantLongEvaluator(DriverContext context, long value) implements ExpressionEvaluator {
302312

303-
public static ExpressionEvaluator.Factory LongFactory(long value) {
304-
return new ExpressionEvaluator.Factory() {
313+
private static final String NAME = "ConstantLong";
314+
private static final long BASE_RAM_BYTES_USED = RamUsageEstimator.shallowSizeOfInstance(ConstantIntegerEvaluator.class);
315+
316+
@Override
317+
public Block eval(Page page) {
318+
return context.blockFactory().newConstantLongBlockWith(value, page.getPositionCount());
319+
}
320+
321+
@Override
322+
public void close() {}
323+
324+
@Override
325+
public long baseRamBytesUsed() {
326+
return BASE_RAM_BYTES_USED;
327+
}
328+
329+
@Override
330+
public String toString() {
331+
return NAME + "[" + value + "]";
332+
}
333+
334+
record Factory(long value) implements ExpressionEvaluator.Factory {
305335
@Override
306-
public ExpressionEvaluator get(DriverContext driverContext) {
307-
return new ExpressionEvaluator() {
308-
@Override
309-
public Block eval(Page page) {
310-
return driverContext.blockFactory().newConstantLongBlockWith(value, page.getPositionCount());
311-
}
312-
313-
@Override
314-
public void close() {
315-
316-
}
317-
318-
@Override
319-
public String toString() {
320-
return CONSTANT_LONG_NAME + "[" + value + "]";
321-
}
322-
};
336+
public ExpressionEvaluator get(DriverContext context) {
337+
return new ConstantLongEvaluator(context, value);
323338
}
324339

325340
@Override
326341
public String toString() {
327-
return CONSTANT_LONG_NAME + "[" + value + "]";
342+
return NAME + "[" + value + "]";
328343
}
329-
};
344+
}
330345
}
331346

332-
private static final String CONSTANT_LONG_NAME = "ConstantLong";
347+
public static ExpressionEvaluator.Factory LongFactory(long value) {
348+
return new ConstantLongEvaluator.Factory(value);
349+
}
333350

334-
public static ExpressionEvaluator.Factory IntegerFactory(int value) {
335-
return new ExpressionEvaluator.Factory() {
351+
private record ConstantIntegerEvaluator(DriverContext context, int value) implements ExpressionEvaluator {
352+
353+
private static final String NAME = "ConstantInteger";
354+
private static final long BASE_RAM_BYTES_USED = RamUsageEstimator.shallowSizeOfInstance(ConstantIntegerEvaluator.class);
355+
356+
@Override
357+
public Block eval(Page page) {
358+
return context.blockFactory().newConstantIntBlockWith(value, page.getPositionCount());
359+
}
360+
361+
@Override
362+
public void close() {}
363+
364+
@Override
365+
public long baseRamBytesUsed() {
366+
return BASE_RAM_BYTES_USED;
367+
}
368+
369+
@Override
370+
public String toString() {
371+
return NAME + "[" + value + "]";
372+
}
373+
374+
record Factory(int value) implements ExpressionEvaluator.Factory {
336375
@Override
337-
public ExpressionEvaluator get(DriverContext driverContext) {
338-
return new ExpressionEvaluator() {
339-
@Override
340-
public Block eval(Page page) {
341-
return driverContext.blockFactory().newConstantIntBlockWith(value, page.getPositionCount());
342-
}
343-
344-
@Override
345-
public void close() {
346-
347-
}
348-
349-
@Override
350-
public String toString() {
351-
return CONSTANT_INTEGER_NAME + "[" + value + "]";
352-
}
353-
};
376+
public ExpressionEvaluator get(DriverContext context) {
377+
return new ConstantIntegerEvaluator(context, value);
354378
}
355379

356380
@Override
357381
public String toString() {
358-
return CONSTANT_INTEGER_NAME + "[" + value + "]";
382+
return NAME + "[" + value + "]";
359383
}
360-
};
384+
}
385+
}
386+
387+
public static ExpressionEvaluator.Factory IntegerFactory(int value) {
388+
return new ConstantIntegerEvaluator.Factory(value);
361389
}
362390

363-
private static final String CONSTANT_INTEGER_NAME = "ConstantInteger";
391+
private record ConstantBytesRefEvaluator(DriverContext context, org.apache.lucene.util.BytesRef value) implements ExpressionEvaluator {
364392

365-
public static ExpressionEvaluator.Factory BytesRefFactory(org.apache.lucene.util.BytesRef value) {
366-
return new ExpressionEvaluator.Factory() {
393+
private static final String NAME = "ConstantBytesRef";
394+
private static final long BASE_RAM_BYTES_USED = RamUsageEstimator.shallowSizeOfInstance(ConstantBytesRefEvaluator.class);
395+
396+
@Override
397+
public Block eval(Page page) {
398+
return context.blockFactory().newConstantBytesRefBlockWith(value, page.getPositionCount());
399+
}
400+
401+
@Override
402+
public void close() {}
403+
404+
@Override
405+
public long baseRamBytesUsed() {
406+
return BASE_RAM_BYTES_USED;
407+
}
408+
409+
@Override
410+
public String toString() {
411+
return NAME + "[" + value.utf8ToString() + "]";
412+
}
413+
414+
record Factory(org.apache.lucene.util.BytesRef value) implements ExpressionEvaluator.Factory {
367415
@Override
368-
public ExpressionEvaluator get(DriverContext driverContext) {
369-
return new ExpressionEvaluator() {
370-
@Override
371-
public Block eval(Page page) {
372-
return driverContext.blockFactory().newConstantBytesRefBlockWith(value, page.getPositionCount());
373-
}
374-
375-
@Override
376-
public void close() {
377-
378-
}
379-
380-
@Override
381-
public String toString() {
382-
return CONSTANT_BYTES_REF_NAME + "[" + value.utf8ToString() + "]";
383-
}
384-
};
416+
public ConstantBytesRefEvaluator get(DriverContext context) {
417+
return new ConstantBytesRefEvaluator(context, value);
385418
}
386419

387420
@Override
388421
public String toString() {
389-
return CONSTANT_BYTES_REF_NAME + "[" + value.utf8ToString() + "]";
422+
return NAME + "[" + value.utf8ToString() + "]";
390423
}
391-
};
424+
}
392425
}
393426

394-
private static final String CONSTANT_BYTES_REF_NAME = "ConstantBytesRef";
427+
public static ExpressionEvaluator.Factory BytesRefFactory(org.apache.lucene.util.BytesRef value) {
428+
return new ConstantBytesRefEvaluator.Factory(value);
429+
}
395430
}

x-pack/plugin/esql/src/main/generated/org/elasticsearch/xpack/esql/expression/function/fulltext/DecayCartesianPointEvaluator.java

Lines changed: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

x-pack/plugin/esql/src/main/generated/org/elasticsearch/xpack/esql/expression/function/fulltext/DecayDateNanosEvaluator.java

Lines changed: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

x-pack/plugin/esql/src/main/generated/org/elasticsearch/xpack/esql/expression/function/fulltext/DecayDatetimeEvaluator.java

Lines changed: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)