Skip to content

Commit c5c3bee

Browse files
author
Andras Palinkas
authored
QL: Simplify the replaceChildren implementations (#66973)
Most of the `Node` transformations calling `Node.replaceChildren` does not change the size of the children list, hence it is enough to check this property once in the `Node` class instead of checking it in each implementation of the `replaceChildren` method. Modification: * All of the tree transformation rules with the exception of the `Case` and `ArbitraryConditionalFunction` transformations expect the children count to be the same before and after the transformation, hence I moved the check for this invariant into the `final Node.replaceChildrenSameSize(List)` method. * Removed a few hundred lines from `Node.replaceChildren` implementations that check the size of the children list * Switched most of the `replaceChildren()` calls to `replaceChildrenSameSize()` with the exception of the `ArbitraryConditionalFunction` and `Case` Optimizer rules
1 parent 40d5df8 commit c5c3bee

File tree

91 files changed

+26
-288
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

91 files changed

+26
-288
lines changed

x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/expression/function/scalar/math/ToNumber.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,10 +107,6 @@ public DataType dataType() {
107107

108108
@Override
109109
public Expression replaceChildren(List<Expression> newChildren) {
110-
if (newChildren.size() != 2) {
111-
throw new IllegalArgumentException("expected [2] children but received [" + newChildren.size() + "]");
112-
}
113-
114110
return new ToNumber(source(), newChildren.get(0), newChildren.get(1));
115111
}
116112
}

x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/expression/function/scalar/math/ToNumberFunctionPipe.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,6 @@ public ToNumberFunctionPipe(Source source, Expression expression, Pipe value, Pi
2727

2828
@Override
2929
public final Pipe replaceChildren(List<Pipe> newChildren) {
30-
if (newChildren.size() != 2) {
31-
throw new IllegalArgumentException("expected [2] children but received [" + newChildren.size() + "]");
32-
}
3330
return replaceChildren(newChildren.get(0), newChildren.get(1));
3431
}
3532

x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/expression/function/scalar/string/Between.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -146,10 +146,6 @@ public DataType dataType() {
146146

147147
@Override
148148
public Expression replaceChildren(List<Expression> newChildren) {
149-
if (newChildren.size() != 4) {
150-
throw new IllegalArgumentException("expected [4] children but received [" + newChildren.size() + "]");
151-
}
152-
153149
return new Between(source(), newChildren.get(0), newChildren.get(1), newChildren.get(2), newChildren.get(3));
154150
}
155151
}

x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/expression/function/scalar/string/BetweenFunctionPipe.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,6 @@ public BetweenFunctionPipe(Source source, Expression expression, Pipe input, Pip
3030

3131
@Override
3232
public final Pipe replaceChildren(List<Pipe> newChildren) {
33-
if (newChildren.size() != 5) {
34-
throw new IllegalArgumentException("expected [5] children but received [" + newChildren.size() + "]");
35-
}
3633
return replaceChildren(newChildren.get(0), newChildren.get(1), newChildren.get(2), newChildren.get(3), newChildren.get(4));
3734
}
3835

x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/expression/function/scalar/string/CIDRMatch.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -134,9 +134,6 @@ public DataType dataType() {
134134

135135
@Override
136136
public Expression replaceChildren(List<Expression> newChildren) {
137-
if (newChildren.size() < 2) {
138-
throw new IllegalArgumentException("expected at least [2] children but received [" + newChildren.size() + "]");
139-
}
140137
return new CIDRMatch(source(), newChildren.get(0), newChildren.subList(1, newChildren.size()));
141138
}
142139
}

x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/expression/function/scalar/string/CIDRMatchFunctionPipe.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,6 @@ public CIDRMatchFunctionPipe(Source source, Expression expression, Pipe input, L
3131

3232
@Override
3333
public final Pipe replaceChildren(List<Pipe> newChildren) {
34-
if (newChildren.size() < 2) {
35-
throw new IllegalArgumentException("expected at least [2] children but received [" + newChildren.size() + "]");
36-
}
3734
return replaceChildren(newChildren.get(0), newChildren.subList(1, newChildren.size()));
3835
}
3936

x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/expression/function/scalar/string/ConcatFunctionPipe.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public final Pipe resolveAttributes(AttributeResolver resolver) {
4141
return this;
4242
}
4343

44-
return replaceChildren(newValues);
44+
return replaceChildrenSameSize(newValues);
4545
}
4646

4747
@Override

x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/expression/function/scalar/string/EndsWith.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -126,10 +126,6 @@ public DataType dataType() {
126126

127127
@Override
128128
public Expression replaceChildren(List<Expression> newChildren) {
129-
if (newChildren.size() != 2) {
130-
throw new IllegalArgumentException("expected [2] children but received [" + newChildren.size() + "]");
131-
}
132-
133129
return new EndsWith(source(), newChildren.get(0), newChildren.get(1), configuration());
134130
}
135131

x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/expression/function/scalar/string/EndsWithFunctionPipe.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,6 @@ public EndsWithFunctionPipe(Source source, Expression expression, Pipe input, Pi
2929

3030
@Override
3131
public final Pipe replaceChildren(List<Pipe> newChildren) {
32-
if (newChildren.size() != 2) {
33-
throw new IllegalArgumentException("expected [2] children but received [" + newChildren.size() + "]");
34-
}
3532
return replaceChildren(newChildren.get(0), newChildren.get(1));
3633
}
3734

x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/expression/function/scalar/string/IndexOf.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -130,10 +130,6 @@ public DataType dataType() {
130130

131131
@Override
132132
public Expression replaceChildren(List<Expression> newChildren) {
133-
if (newChildren.size() != 3) {
134-
throw new IllegalArgumentException("expected [3] children but received [" + newChildren.size() + "]");
135-
}
136-
137133
return new IndexOf(source(), newChildren.get(0), newChildren.get(1), newChildren.get(2), configuration());
138134
}
139135

x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/expression/function/scalar/string/IndexOfFunctionPipe.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,6 @@ public IndexOfFunctionPipe(Source source, Expression expression, Pipe input, Pip
3030

3131
@Override
3232
public final Pipe replaceChildren(List<Pipe> newChildren) {
33-
if (newChildren.size() != 3) {
34-
throw new IllegalArgumentException("expected [3] children but received [" + newChildren.size() + "]");
35-
}
3633
return replaceChildren(newChildren.get(0), newChildren.get(1), newChildren.get(2));
3734
}
3835

x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/expression/function/scalar/string/Length.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,10 +96,6 @@ public DataType dataType() {
9696

9797
@Override
9898
public Expression replaceChildren(List<Expression> newChildren) {
99-
if (newChildren.size() != 1) {
100-
throw new IllegalArgumentException("expected [1] children but received [" + newChildren.size() + "]");
101-
}
102-
10399
return new Length(source(), newChildren.get(0));
104100
}
105101

x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/expression/function/scalar/string/LengthFunctionPipe.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,6 @@ public LengthFunctionPipe(Source source, Expression expression, Pipe input) {
2626

2727
@Override
2828
public final Pipe replaceChildren(List<Pipe> newChildren) {
29-
if (newChildren.size() != 1) {
30-
throw new IllegalArgumentException("expected [1] children but received [" + newChildren.size() + "]");
31-
}
3229
return replaceChildren(newChildren.get(0));
3330
}
3431

x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/expression/function/scalar/string/Match.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,6 @@ protected NodeInfo<? extends Expression> info() {
5252

5353
@Override
5454
public Expression replaceChildren(List<Expression> newChildren) {
55-
if (newChildren.size() < 2) {
56-
throw new IllegalArgumentException("expected at least [2] children but received [" + newChildren.size() + "]");
57-
}
5855
return new Match(source(), newChildren);
5956
}
6057

x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/expression/function/scalar/string/StringContains.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -119,10 +119,6 @@ public DataType dataType() {
119119

120120
@Override
121121
public Expression replaceChildren(List<Expression> newChildren) {
122-
if (newChildren.size() != 2) {
123-
throw new IllegalArgumentException("expected [2] children but received [" + newChildren.size() + "]");
124-
}
125-
126122
return new StringContains(source(), newChildren.get(0), newChildren.get(1), eqlConfiguration());
127123
}
128124

x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/expression/function/scalar/string/StringContainsFunctionPipe.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,6 @@ public StringContainsFunctionPipe(Source source, Expression expression, Pipe str
3030

3131
@Override
3232
public final Pipe replaceChildren(List<Pipe> newChildren) {
33-
if (newChildren.size() != 2) {
34-
throw new IllegalArgumentException("expected [2] children but received [" + newChildren.size() + "]");
35-
}
3633
return replaceChildren(newChildren.get(0), newChildren.get(1));
3734
}
3835

x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/expression/function/scalar/string/Substring.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -121,10 +121,6 @@ public DataType dataType() {
121121

122122
@Override
123123
public Expression replaceChildren(List<Expression> newChildren) {
124-
if (newChildren.size() != 3) {
125-
throw new IllegalArgumentException("expected [3] children but received [" + newChildren.size() + "]");
126-
}
127-
128124
return new Substring(source(), newChildren.get(0), newChildren.get(1), newChildren.get(2));
129125
}
130126
}

x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/expression/function/scalar/string/SubstringFunctionPipe.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,6 @@ public SubstringFunctionPipe(Source source, Expression expression, Pipe input, P
2828

2929
@Override
3030
public final Pipe replaceChildren(List<Pipe> newChildren) {
31-
if (newChildren.size() != 3) {
32-
throw new IllegalArgumentException("expected [3] children but received [" + newChildren.size() + "]");
33-
}
3431
return replaceChildren(newChildren.get(0), newChildren.get(1), newChildren.get(2));
3532
}
3633

x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/expression/function/scalar/string/ToString.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,6 @@ public DataType dataType() {
9595

9696
@Override
9797
public Expression replaceChildren(List<Expression> newChildren) {
98-
if (newChildren.size() != 1) {
99-
throw new IllegalArgumentException("expected [1] children but received [" + newChildren.size() + "]");
100-
}
101-
10298
return new ToString(source(), newChildren.get(0));
10399
}
104100
}

x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/expression/function/scalar/string/ToStringFunctionPipe.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,6 @@ public ToStringFunctionPipe(Source source, Expression expression, Pipe input) {
2626

2727
@Override
2828
public final ToStringFunctionPipe replaceChildren(List<Pipe> newChildren) {
29-
if (newChildren.size() != 1) {
30-
throw new IllegalArgumentException("expected [1] children but received [" + newChildren.size() + "]");
31-
}
3229
return new ToStringFunctionPipe(source(), expression(), newChildren.get(0));
3330
}
3431

x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/expression/function/scalar/string/Wildcard.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,6 @@ protected NodeInfo<? extends Expression> info() {
4949

5050
@Override
5151
public Expression replaceChildren(List<Expression> newChildren) {
52-
if (newChildren.size() < 2) {
53-
throw new IllegalArgumentException("expected at least [2] children but received [" + newChildren.size() + "]");
54-
}
55-
5652
return new Wildcard(source(), newChildren.get(0), newChildren.subList(1, newChildren.size()));
5753
}
5854

x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/optimizer/Optimizer.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ protected LogicalPlan rule(Filter filter) {
184184
plan = new Filter(f.source(), f.child(), new And(f.source(), f.condition(), filter.condition()));
185185
} else if (child instanceof UnaryPlan) {
186186
UnaryPlan up = (UnaryPlan) child;
187-
plan = child.replaceChildren(singletonList(new Filter(filter.source(), up.child(), filter.condition())));
187+
plan = child.replaceChildrenSameSize(singletonList(new Filter(filter.source(), up.child(), filter.condition())));
188188
}
189189

190190
return plan;
@@ -426,13 +426,13 @@ protected LogicalPlan rule(OrderBy orderBy) {
426426
// preserve the order for the base query, everything else needs to be ascending
427427
List<Order> pushedOrder = baseFilter ? orderBy.order() : ascendingOrders;
428428
OrderBy order = new OrderBy(filter.source(), filter.child(), pushedOrder);
429-
orderedQueries.add((KeyedFilter) filter.replaceChildren(singletonList(order)));
429+
orderedQueries.add((KeyedFilter) filter.replaceChildrenSameSize(singletonList(order)));
430430
baseFilter = false;
431431
}
432432

433433
KeyedFilter until = join.until();
434434
OrderBy order = new OrderBy(until.source(), until.child(), ascendingOrders);
435-
until = (KeyedFilter) until.replaceChildren(singletonList(order));
435+
until = (KeyedFilter) until.replaceChildrenSameSize(singletonList(order));
436436

437437
OrderDirection direction = orderBy.order().get(0).direction();
438438
plan = join.with(orderedQueries, until, direction);

x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/parser/LogicalPlanBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ public Object visitStatement(StatementContext ctx) {
123123
} else {
124124
previous = new Tail(defaultLimitSource, defaultSize, previous);
125125
}
126-
plan = plan.replaceChildren(singletonList(previous));
126+
plan = plan.replaceChildrenSameSize(singletonList(previous));
127127
}
128128
previous = plan;
129129
}

x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/plan/logical/Join.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66

77
package org.elasticsearch.xpack.eql.plan.logical;
88

9-
import org.elasticsearch.xpack.eql.EqlIllegalArgumentException;
109
import org.elasticsearch.xpack.ql.capabilities.Resolvables;
1110
import org.elasticsearch.xpack.ql.expression.Attribute;
1211
import org.elasticsearch.xpack.ql.expression.Expressions;
@@ -77,9 +76,6 @@ protected NodeInfo<? extends Join> info() {
7776

7877
@Override
7978
public Join replaceChildren(List<LogicalPlan> newChildren) {
80-
if (newChildren.size() < 2) {
81-
throw new EqlIllegalArgumentException("expected at least [2] children but received [{}]", newChildren.size());
82-
}
8379
int lastIndex = newChildren.size() - 1;
8480
return new Join(source(), newChildren.subList(0, lastIndex), newChildren.get(lastIndex), timestamp, tiebreaker, direction);
8581
}

x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/plan/logical/Sequence.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
package org.elasticsearch.xpack.eql.plan.logical;
88

99
import org.elasticsearch.common.unit.TimeValue;
10-
import org.elasticsearch.xpack.eql.EqlIllegalArgumentException;
1110
import org.elasticsearch.xpack.ql.expression.Attribute;
1211
import org.elasticsearch.xpack.ql.expression.Order.OrderDirection;
1312
import org.elasticsearch.xpack.ql.plan.logical.LogicalPlan;
@@ -52,9 +51,6 @@ protected NodeInfo<Sequence> info() {
5251

5352
@Override
5453
public Join replaceChildren(List<LogicalPlan> newChildren) {
55-
if (newChildren.size() < 2) {
56-
throw new EqlIllegalArgumentException("expected at least [2] children but received [{}]", newChildren.size());
57-
}
5854
int lastIndex = newChildren.size() - 1;
5955
return new Sequence(source(), newChildren.subList(0, lastIndex), newChildren.get(lastIndex), maxSpan, timestamp(), tiebreaker(),
6056
direction());

x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/plan/physical/SequenceExec.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88

99
import org.elasticsearch.action.ActionListener;
1010
import org.elasticsearch.common.unit.TimeValue;
11-
import org.elasticsearch.xpack.eql.EqlIllegalArgumentException;
1211
import org.elasticsearch.xpack.eql.execution.assembler.ExecutionManager;
1312
import org.elasticsearch.xpack.eql.execution.search.Limit;
1413
import org.elasticsearch.xpack.eql.session.EqlSession;
@@ -72,11 +71,6 @@ protected NodeInfo<SequenceExec> info() {
7271

7372
@Override
7473
public PhysicalPlan replaceChildren(List<PhysicalPlan> newChildren) {
75-
if (newChildren.size() != children().size()) {
76-
throw new EqlIllegalArgumentException("Expected the same number of children [{}] but got [{}]",
77-
children().size(),
78-
newChildren.size());
79-
}
8074
return new SequenceExec(source(), newChildren, keys, timestamp, tiebreaker, limit, direction, maxSpan);
8175
}
8276

x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/plan/physical/UnaryExec.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,6 @@ protected UnaryExec(Source source, PhysicalPlan child) {
2323

2424
@Override
2525
public final PhysicalPlan replaceChildren(List<PhysicalPlan> newChildren) {
26-
if (newChildren.size() != 1) {
27-
throw new IllegalArgumentException("expected [1] child but received [" + newChildren.size() + "]");
28-
}
2926
return replaceChild(newChildren.get(0));
3027
}
3128

x-pack/plugin/eql/src/test/java/org/elasticsearch/xpack/eql/expression/function/scalar/string/ConcatFunctionPipeTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,8 @@ public void testReplaceChildren() {
6868
List<Pipe> newValues = mutateOneValue(b.values());
6969

7070
ConcatFunctionPipe newB = new ConcatFunctionPipe(b.source(), b.expression(), b.values());
71-
ConcatFunctionPipe transformed = newB.replaceChildren(newValues);
72-
71+
ConcatFunctionPipe transformed = (ConcatFunctionPipe) newB.replaceChildrenSameSize(newValues);
72+
7373
assertEquals(transformed.values(), newValues);
7474
assertEquals(transformed.source(), b.source());
7575
assertEquals(transformed.expression(), b.expression());

x-pack/plugin/ql/src/main/java/org/elasticsearch/xpack/ql/expression/Alias.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,6 @@ protected NodeInfo<Alias> info() {
5757

5858
@Override
5959
public Expression replaceChildren(List<Expression> newChildren) {
60-
if (newChildren.size() != 1) {
61-
throw new IllegalArgumentException("expected [1] child but received [" + newChildren.size() + "]");
62-
}
6360
return new Alias(source(), name(), qualifier, newChildren.get(0), id(), synthetic());
6461
}
6562

x-pack/plugin/ql/src/main/java/org/elasticsearch/xpack/ql/expression/Order.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,6 @@ public DataType dataType() {
5858

5959
@Override
6060
public Order replaceChildren(List<Expression> newChildren) {
61-
if (newChildren.size() != 1) {
62-
throw new IllegalArgumentException("expected [1] child but received [" + newChildren.size() + "]");
63-
}
6461
return new Order(source(), newChildren.get(0), direction, nulls);
6562
}
6663

x-pack/plugin/ql/src/main/java/org/elasticsearch/xpack/ql/expression/UnaryExpression.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,6 @@ protected UnaryExpression(Source source, Expression child) {
2424

2525
@Override
2626
public final UnaryExpression replaceChildren(List<Expression> newChildren) {
27-
if (newChildren.size() != 1) {
28-
throw new IllegalArgumentException("expected [1] child but received [" + newChildren.size() + "]");
29-
}
3027
return replaceChild(newChildren.get(0));
3128
}
3229
protected abstract UnaryExpression replaceChild(Expression newChild);

x-pack/plugin/ql/src/main/java/org/elasticsearch/xpack/ql/expression/UnresolvedAlias.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,6 @@ protected NodeInfo<UnresolvedAlias> info() {
3030

3131
@Override
3232
public Expression replaceChildren(List<Expression> newChildren) {
33-
if (newChildren.size() != 1) {
34-
throw new IllegalArgumentException("expected [1] child but received [" + newChildren.size() + "]");
35-
}
3633
return new UnresolvedAlias(source(), newChildren.get(0));
3734
}
3835

x-pack/plugin/ql/src/main/java/org/elasticsearch/xpack/ql/expression/function/aggregate/Count.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,6 @@ protected NodeInfo<Count> info() {
3535

3636
@Override
3737
public Count replaceChildren(List<Expression> newChildren) {
38-
if (newChildren.size() != 1) {
39-
throw new IllegalArgumentException("expected [1] child but received [" + newChildren.size() + "]");
40-
}
4138
return new Count(source(), newChildren.get(0), distinct);
4239
}
4340

x-pack/plugin/ql/src/main/java/org/elasticsearch/xpack/ql/expression/function/scalar/BinaryScalarFunction.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,6 @@ protected BinaryScalarFunction(Source source, Expression left, Expression right)
2828

2929
@Override
3030
public final BinaryScalarFunction replaceChildren(List<Expression> newChildren) {
31-
if (newChildren.size() != 2) {
32-
throw new IllegalArgumentException("expected [2] children but received [" + newChildren.size() + "]");
33-
}
3431
Expression newLeft = newChildren.get(0);
3532
Expression newRight = newChildren.get(1);
3633

x-pack/plugin/ql/src/main/java/org/elasticsearch/xpack/ql/expression/function/scalar/UnaryScalarFunction.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,6 @@ protected UnaryScalarFunction(Source source, Expression field) {
3333

3434
@Override
3535
public final UnaryScalarFunction replaceChildren(List<Expression> newChildren) {
36-
if (newChildren.size() != 1) {
37-
throw new IllegalArgumentException("expected [1] child but received [" + newChildren.size() + "]");
38-
}
3936
return replaceChild(newChildren.get(0));
4037
}
4138

0 commit comments

Comments
 (0)