aboutsummaryrefslogtreecommitdiffstats
path: root/indexinglanguage
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2021-09-19 22:08:56 +0200
committerJon Bratseth <bratseth@gmail.com>2021-09-19 22:08:56 +0200
commita0a5dd29181cfd527f3e722bee3536ce3d09fc3b (patch)
tree0f47f952ddee7140697f87295cf3d4ff5d1b74eb /indexinglanguage
parent03cca9c42b32d8d4ba24b348f8466de42bb05cd7 (diff)
Remove outputType (not needed after all)
Diffstat (limited to 'indexinglanguage')
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ExecutionContext.java9
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/StatementExpression.java24
2 files changed, 8 insertions, 25 deletions
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ExecutionContext.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ExecutionContext.java
index 1aec13bff50..e2820dd5578 100644
--- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ExecutionContext.java
+++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ExecutionContext.java
@@ -20,7 +20,6 @@ public class ExecutionContext implements FieldTypeAdapter, FieldValueAdapter, Cl
private final FieldValueAdapter adapter;
private FieldValue value;
private Language language;
- private DataType outputType = null;
public ExecutionContext() {
this(null);
@@ -64,14 +63,6 @@ public class ExecutionContext implements FieldTypeAdapter, FieldValueAdapter, Cl
adapter.tryOutputType(exp, fieldName, valueType);
}
- /** Sets the output type created by this execution */
- public void setOutputType(DataType type) {
- this.outputType = type;
- }
-
- /** Returns the output type created by this execution, or null if none */
- public DataType getOutputType() { return outputType; }
-
@Override
public ExecutionContext setOutputValue(Expression exp, String fieldName, FieldValue fieldValue) {
if (adapter == null) {
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/StatementExpression.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/StatementExpression.java
index f5354938c67..145133e210d 100644
--- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/StatementExpression.java
+++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/StatementExpression.java
@@ -25,9 +25,6 @@ public final class StatementExpression extends ExpressionList<Expression> {
/** The name of the (last) output field tthis statement will write to, or null if none */
private String outputField;
- /** The type of the output created by this statement, or null if no output */
- private DataType outputType;
-
public StatementExpression(Expression... lst) {
this(Arrays.asList(lst));
}
@@ -38,12 +35,10 @@ public final class StatementExpression extends ExpressionList<Expression> {
private StatementExpression(Iterable<Expression> list, Object unused) {
super(list, resolveInputType(list));
- outputType = resolveOutputType(list);
}
@Override
protected void doExecute(ExecutionContext context) {
- context.setOutputType(outputType);
for (Expression exp : this) {
context.execute(exp);
}
@@ -58,7 +53,6 @@ public final class StatementExpression extends ExpressionList<Expression> {
context.setOutputField(outputField);
for (Expression expression : this)
context.execute(expression);
- outputType = context.getValueType();
}
private static DataType resolveInputType(Iterable<Expression> lst) {
@@ -76,20 +70,18 @@ public final class StatementExpression extends ExpressionList<Expression> {
return null;
}
- private static DataType resolveOutputType(Iterable<Expression> expressions) {
- DataType lastOutput = null;
- for (var expression : expressions) {
- DataType output = expression.createdOutputType();
- if (output != null)
- lastOutput = output;
+ @Override
+ public DataType createdOutputType() {
+ for (int i = size(); --i >= 0; ) {
+ DataType type = get(i).createdOutputType();
+ if (type != null) {
+ return type;
+ }
}
- return lastOutput;
+ return null;
}
@Override
- public DataType createdOutputType() { return outputType; }
-
- @Override
public String toString() {
StringBuilder ret = new StringBuilder();
for (Iterator<Expression> it = iterator(); it.hasNext();) {