aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/schema/expressiontransforms/InputRecorder.java
diff options
context:
space:
mode:
authorArne Juul <arnej@yahooinc.com>2023-03-16 11:00:36 +0000
committerArne Juul <arnej@yahooinc.com>2023-03-16 11:05:35 +0000
commitd883fa1f9fff36baf7231e6e9f8958017a705657 (patch)
treea99d74c943de8eb2d0b6c47746e39b612aa4c5c6 /config-model/src/main/java/com/yahoo/schema/expressiontransforms/InputRecorder.java
parent9ec2f1a8888610e961ba4c6894abb096a8373850 (diff)
* make InputRecorder handle slice with embedded expressions
* special handling for Generate and Slice in BindingExtractor
Diffstat (limited to 'config-model/src/main/java/com/yahoo/schema/expressiontransforms/InputRecorder.java')
-rw-r--r--config-model/src/main/java/com/yahoo/schema/expressiontransforms/InputRecorder.java8
1 files changed, 8 insertions, 0 deletions
diff --git a/config-model/src/main/java/com/yahoo/schema/expressiontransforms/InputRecorder.java b/config-model/src/main/java/com/yahoo/schema/expressiontransforms/InputRecorder.java
index 6e7787c2dd1..993a2442fdb 100644
--- a/config-model/src/main/java/com/yahoo/schema/expressiontransforms/InputRecorder.java
+++ b/config-model/src/main/java/com/yahoo/schema/expressiontransforms/InputRecorder.java
@@ -13,6 +13,7 @@ import com.yahoo.searchlib.rankingexpression.rule.ReferenceNode;
import com.yahoo.searchlib.rankingexpression.rule.TensorFunctionNode;
import com.yahoo.searchlib.rankingexpression.transform.ExpressionTransformer;
import com.yahoo.tensor.functions.Generate;
+import com.yahoo.tensor.functions.Slice;
import java.io.StringReader;
import java.util.HashSet;
@@ -53,6 +54,13 @@ public class InputRecorder extends ExpressionTransformer<InputRecorderContext> {
}
return transformChildren(t, childContext);
}
+ if (f instanceof Slice s) {
+ for (var tf : s.selectorFunctions()) {
+ if (tf instanceof TensorFunctionNode.ExpressionTensorFunction expr) {
+ transform(expr.wrappedExpression(), context);
+ }
+ }
+ }
}
if (node instanceof CompositeNode c)
return transformChildren(c, context);