diff options
author | Jon Bratseth <bratseth@gmail.com> | 2022-02-15 11:19:46 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2022-02-15 11:19:46 +0100 |
commit | d030467ed4b417c910bfb063a5e77e4a49553d82 (patch) | |
tree | 5e158d35a3cbb0110ffd52392bd33668f60a0408 /searchlib | |
parent | d29d335828d98e248f1cb593882d2d4f08fe702c (diff) |
Allow quoted string slice labels
Diffstat (limited to 'searchlib')
-rw-r--r-- | searchlib/src/main/java/com/yahoo/searchlib/expression/ConstantNode.java | 4 | ||||
-rwxr-xr-x | searchlib/src/main/javacc/RankingExpressionParser.jj | 12 |
2 files changed, 8 insertions, 8 deletions
diff --git a/searchlib/src/main/java/com/yahoo/searchlib/expression/ConstantNode.java b/searchlib/src/main/java/com/yahoo/searchlib/expression/ConstantNode.java index 2bab10d1830..e26900ac77e 100644 --- a/searchlib/src/main/java/com/yahoo/searchlib/expression/ConstantNode.java +++ b/searchlib/src/main/java/com/yahoo/searchlib/expression/ConstantNode.java @@ -16,9 +16,7 @@ public class ConstantNode extends ExpressionNode { public static final int classId = registerClass(0x4000 + 49, ConstantNode.class); private ResultNode value = null; - public ConstantNode() { - - } + public ConstantNode() {} public ConstantNode(ResultNode value) { this.value = value; diff --git a/searchlib/src/main/javacc/RankingExpressionParser.jj b/searchlib/src/main/javacc/RankingExpressionParser.jj index 0d46ab4ddb6..865820320d8 100755 --- a/searchlib/src/main/javacc/RankingExpressionParser.jj +++ b/searchlib/src/main/javacc/RankingExpressionParser.jj @@ -1032,11 +1032,13 @@ Slice.DimensionValue dimensionValue(Optional dimensionName) : { value = expression() { - if (value instanceof ReferenceNode && ((ReferenceNode)value).reference().isIdentifier()) - return new Slice.DimensionValue(dimensionName, ((ReferenceNode)value).reference().name()); - else - return new Slice.DimensionValue(dimensionName, TensorFunctionNode.wrapScalar(value)); -} + if (value instanceof ReferenceNode && ((ReferenceNode)value).reference().isIdentifier()) // A label + return new Slice.DimensionValue(dimensionName, ((ReferenceNode)value).reference().name()); + else if (value instanceof ConstantNode && ((ConstantNode)value).getValue() instanceof StringValue) // A quoted label + return new Slice.DimensionValue(dimensionName, ((StringValue)((ConstantNode)value).getValue()).asString()); + else + return new Slice.DimensionValue(dimensionName, TensorFunctionNode.wrapScalar(value)); + } } String label() : |