aboutsummaryrefslogtreecommitdiffstats
path: root/indexinglanguage
diff options
context:
space:
mode:
authorArne Juul <arnej@vespa.ai>2024-03-19 11:26:40 +0000
committerArne Juul <arnej@vespa.ai>2024-03-19 11:29:29 +0000
commit94b66781ae182e0368991bedd04a05a0822b2747 (patch)
tree2f040697314b39909c04e496933ee76bf4ad89d2 /indexinglanguage
parent3cc4afe284f321a5216324aca3b0d38b2c22ce4e (diff)
fill variable types of VerificationContext
Diffstat (limited to 'indexinglanguage')
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/CatExpression.java1
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ExecutionContext.java6
-rw-r--r--indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ForEachExpression.java1
3 files changed, 8 insertions, 0 deletions
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/CatExpression.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/CatExpression.java
index 8ecd9fa8ef5..6e90142d8a1 100644
--- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/CatExpression.java
+++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/CatExpression.java
@@ -36,6 +36,7 @@ public final class CatExpression extends ExpressionList<Expression> {
FieldValue input = context.getValue();
DataType inputType = input != null ? input.getDataType() : null;
VerificationContext ver = new VerificationContext(context);
+ context.fillVariableTypes(ver);
List<FieldValue> values = new LinkedList<>();
List<DataType> types = new LinkedList<>();
for (Expression exp : this) {
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 ae8af9da778..b0478f8001c 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
@@ -132,4 +132,10 @@ public class ExecutionContext implements FieldTypeAdapter, FieldValueAdapter, Cl
return this;
}
+ void fillVariableTypes(VerificationContext vctx) {
+ for (var entry : variables.entrySet()) {
+ vctx.setVariable(entry.getKey(), entry.getValue().getDataType());
+ }
+ }
+
}
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ForEachExpression.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ForEachExpression.java
index 25ac948c435..256ae68ba65 100644
--- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ForEachExpression.java
+++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/ForEachExpression.java
@@ -47,6 +47,7 @@ public final class ForEachExpression extends CompositeExpression {
FieldValue next = new MyConverter(context, exp).convert(input);
if (next == null) {
VerificationContext vctx = new VerificationContext(context);
+ context.fillVariableTypes(vctx);
vctx.setValueType(input.getDataType()).execute(this);
next = vctx.getValueType().createFieldValue();
}