aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/query/parser/StructuredParser.java1
-rw-r--r--container-search/src/test/java/com/yahoo/search/yql/UserInputTestCase.java9
2 files changed, 10 insertions, 0 deletions
diff --git a/container-search/src/main/java/com/yahoo/prelude/query/parser/StructuredParser.java b/container-search/src/main/java/com/yahoo/prelude/query/parser/StructuredParser.java
index 54a6e5b6e90..f993c7a9e02 100644
--- a/container-search/src/main/java/com/yahoo/prelude/query/parser/StructuredParser.java
+++ b/container-search/src/main/java/com/yahoo/prelude/query/parser/StructuredParser.java
@@ -333,6 +333,7 @@ abstract class StructuredParser extends AbstractParser {
if (tokens.currentIs(NUMBER)) {
rangeEnd = (negative ? "-" : "") + tokens.next().toString() + decimalPart();
}
+ if (rangeStart.isBlank() && rangeEnd.isBlank()) return null;
String range = "[" + rangeStart + ";" + rangeEnd;
diff --git a/container-search/src/test/java/com/yahoo/search/yql/UserInputTestCase.java b/container-search/src/test/java/com/yahoo/search/yql/UserInputTestCase.java
index 5e97b59646f..4af29822a26 100644
--- a/container-search/src/test/java/com/yahoo/search/yql/UserInputTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/yql/UserInputTestCase.java
@@ -359,4 +359,13 @@ public class UserInputTestCase {
assertQueryFails(builder);
}
+ @Test
+ public void testUserInputWithEmptyRangeStart() {
+ URIBuilder builder = searchUri();
+ builder.setParameter("wql", "[;boom]");
+ builder.setParameter("yql", "select * from sources * where ([{\"defaultIndex\": \"text_field\",\"grammar\": \"any\"}]userInput(@wql))");
+ Query query = searchAndAssertNoErrors(builder);
+ assertEquals("select * from sources * where text_field contains \"boom\"", query.yqlRepresentation());
+ }
+
}