1717import org .elasticsearch .compute .data .Page ;
1818import org .elasticsearch .compute .data .Vector ;
1919import org .elasticsearch .compute .operator .DriverContext ;
20- import org .elasticsearch .compute .operator .EvalOperator ;
2120import org .elasticsearch .compute .operator .EvalOperator .ExpressionEvaluator ;
2221import org .elasticsearch .core .Releasables ;
2322import org .elasticsearch .xpack .esql .core .QlIllegalArgumentException ;
2827import org .elasticsearch .xpack .esql .evaluator .mapper .EvaluatorMapper ;
2928import org .elasticsearch .xpack .esql .evaluator .mapper .ExpressionMapper ;
3029import 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 ;
3430import org .elasticsearch .xpack .esql .expression .predicate .operator .comparison .InsensitiveEqualsMapper ;
3531import org .elasticsearch .xpack .esql .planner .EsPhysicalOperationProviders .ShardContext ;
3632import org .elasticsearch .xpack .esql .planner .Layout ;
@@ -42,11 +38,8 @@ public final class EvalMapper {
4238 private static final List <ExpressionMapper <?>> MAPPERS = List .of (
4339 new InsensitiveEqualsMapper (),
4440 new BooleanLogic (),
45- new Nots (),
4641 new Attributes (),
47- new Literals (),
48- new IsNotNulls (),
49- new IsNulls ()
42+ new Literals ()
5043 );
5144
5245 private EvalMapper () {}
@@ -174,18 +167,6 @@ public void close() {
174167 }
175168 }
176169
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-
189170 static class Attributes extends ExpressionMapper <Attribute > {
190171 @ Override
191172 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
276257 return BlockUtils .constantBlock (blockFactory , value , positions );
277258 }
278259 }
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- }
376260}
0 commit comments