17
17
import org .elasticsearch .compute .data .Page ;
18
18
import org .elasticsearch .compute .data .Vector ;
19
19
import org .elasticsearch .compute .operator .DriverContext ;
20
- import org .elasticsearch .compute .operator .EvalOperator ;
21
20
import org .elasticsearch .compute .operator .EvalOperator .ExpressionEvaluator ;
22
21
import org .elasticsearch .core .Releasables ;
23
22
import org .elasticsearch .xpack .esql .core .QlIllegalArgumentException ;
28
27
import org .elasticsearch .xpack .esql .evaluator .mapper .EvaluatorMapper ;
29
28
import org .elasticsearch .xpack .esql .evaluator .mapper .ExpressionMapper ;
30
29
import org .elasticsearch .xpack .esql .expression .predicate .logical .BinaryLogic ;
31
- import org .elasticsearch .xpack .esql .expression .predicate .logical .Not ;
32
- import org .elasticsearch .xpack .esql .expression .predicate .nulls .IsNotNull ;
33
- import org .elasticsearch .xpack .esql .expression .predicate .nulls .IsNull ;
34
30
import org .elasticsearch .xpack .esql .expression .predicate .operator .comparison .InsensitiveEqualsMapper ;
35
31
import org .elasticsearch .xpack .esql .planner .EsPhysicalOperationProviders .ShardContext ;
36
32
import org .elasticsearch .xpack .esql .planner .Layout ;
@@ -42,11 +38,8 @@ public final class EvalMapper {
42
38
private static final List <ExpressionMapper <?>> MAPPERS = List .of (
43
39
new InsensitiveEqualsMapper (),
44
40
new BooleanLogic (),
45
- new Nots (),
46
41
new Attributes (),
47
- new Literals (),
48
- new IsNotNulls (),
49
- new IsNulls ()
42
+ new Literals ()
50
43
);
51
44
52
45
private EvalMapper () {}
@@ -174,18 +167,6 @@ public void close() {
174
167
}
175
168
}
176
169
177
- static class Nots extends ExpressionMapper <Not > {
178
- @ Override
179
- public ExpressionEvaluator .Factory map (FoldContext foldCtx , Not not , Layout layout , List <ShardContext > shardContexts ) {
180
- var expEval = toEvaluator (foldCtx , not .field (), layout , shardContexts );
181
- return dvrCtx -> new org .elasticsearch .xpack .esql .evaluator .predicate .operator .logical .NotEvaluator (
182
- not .source (),
183
- expEval .get (dvrCtx ),
184
- dvrCtx
185
- );
186
- }
187
- }
188
-
189
170
static class Attributes extends ExpressionMapper <Attribute > {
190
171
@ Override
191
172
public ExpressionEvaluator .Factory map (FoldContext foldCtx , Attribute attr , Layout layout , List <ShardContext > shardContexts ) {
@@ -276,101 +257,4 @@ private static Block block(Literal lit, BlockFactory blockFactory, int positions
276
257
return BlockUtils .constantBlock (blockFactory , value , positions );
277
258
}
278
259
}
279
-
280
- static class IsNulls extends ExpressionMapper <IsNull > {
281
-
282
- @ Override
283
- public ExpressionEvaluator .Factory map (FoldContext foldCtx , IsNull isNull , Layout layout , List <ShardContext > shardContexts ) {
284
- var field = toEvaluator (foldCtx , isNull .field (), layout , shardContexts );
285
- return new IsNullEvaluatorFactory (field );
286
- }
287
-
288
- record IsNullEvaluatorFactory (EvalOperator .ExpressionEvaluator .Factory field ) implements ExpressionEvaluator .Factory {
289
- @ Override
290
- public ExpressionEvaluator get (DriverContext context ) {
291
- return new IsNullEvaluator (context , field .get (context ));
292
- }
293
-
294
- @ Override
295
- public String toString () {
296
- return "IsNullEvaluator[field=" + field + ']' ;
297
- }
298
- }
299
-
300
- record IsNullEvaluator (DriverContext driverContext , EvalOperator .ExpressionEvaluator field ) implements ExpressionEvaluator {
301
- @ Override
302
- public Block eval (Page page ) {
303
- try (Block fieldBlock = field .eval (page )) {
304
- if (fieldBlock .asVector () != null ) {
305
- return driverContext .blockFactory ().newConstantBooleanBlockWith (false , page .getPositionCount ());
306
- }
307
- try (var builder = driverContext .blockFactory ().newBooleanVectorFixedBuilder (page .getPositionCount ())) {
308
- for (int p = 0 ; p < page .getPositionCount (); p ++) {
309
- builder .appendBoolean (p , fieldBlock .isNull (p ));
310
- }
311
- return builder .build ().asBlock ();
312
- }
313
- }
314
- }
315
-
316
- @ Override
317
- public void close () {
318
- Releasables .closeExpectNoException (field );
319
- }
320
-
321
- @ Override
322
- public String toString () {
323
- return "IsNullEvaluator[field=" + field + ']' ;
324
- }
325
- }
326
- }
327
-
328
- static class IsNotNulls extends ExpressionMapper <IsNotNull > {
329
-
330
- @ Override
331
- public ExpressionEvaluator .Factory map (FoldContext foldCtx , IsNotNull isNotNull , Layout layout , List <ShardContext > shardContexts ) {
332
- return new IsNotNullEvaluatorFactory (toEvaluator (foldCtx , isNotNull .field (), layout , shardContexts ));
333
- }
334
-
335
- record IsNotNullEvaluatorFactory (EvalOperator .ExpressionEvaluator .Factory field ) implements ExpressionEvaluator .Factory {
336
- @ Override
337
- public ExpressionEvaluator get (DriverContext context ) {
338
- return new IsNotNullEvaluator (context , field .get (context ));
339
- }
340
-
341
- @ Override
342
- public String toString () {
343
- return "IsNotNullEvaluator[field=" + field + ']' ;
344
- }
345
- }
346
-
347
- record IsNotNullEvaluator (DriverContext driverContext , EvalOperator .ExpressionEvaluator field )
348
- implements
349
- EvalOperator .ExpressionEvaluator {
350
- @ Override
351
- public Block eval (Page page ) {
352
- try (Block fieldBlock = field .eval (page )) {
353
- if (fieldBlock .asVector () != null ) {
354
- return driverContext .blockFactory ().newConstantBooleanBlockWith (true , page .getPositionCount ());
355
- }
356
- try (var builder = driverContext .blockFactory ().newBooleanVectorFixedBuilder (page .getPositionCount ())) {
357
- for (int p = 0 ; p < page .getPositionCount (); p ++) {
358
- builder .appendBoolean (p , fieldBlock .isNull (p ) == false );
359
- }
360
- return builder .build ().asBlock ();
361
- }
362
- }
363
- }
364
-
365
- @ Override
366
- public void close () {
367
- Releasables .closeExpectNoException (field );
368
- }
369
-
370
- @ Override
371
- public String toString () {
372
- return "IsNotNullEvaluator[field=" + field + ']' ;
373
- }
374
- }
375
- }
376
260
}
0 commit comments