diff options
author | Tor Egge <Tor.Egge@online.no> | 2023-11-30 10:47:28 +0100 |
---|---|---|
committer | Tor Egge <Tor.Egge@online.no> | 2023-11-30 10:47:28 +0100 |
commit | 8a14e1290e46a5e8ccee017fdb2b9d01c64c0cac (patch) | |
tree | e72bd5a80556f59d3783bf2b8bb91f41e4f284df | |
parent | 89f5b616f391124a8fbb6d2e9c4e8c4d32b91efa (diff) |
Update exception message when in operator is used with wrong field type.
-rw-r--r-- | container-search/src/main/java/com/yahoo/search/yql/YqlParser.java | 3 | ||||
-rw-r--r-- | container-search/src/test/java/com/yahoo/search/yql/YqlParserTestCase.java | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/yql/YqlParser.java b/container-search/src/main/java/com/yahoo/search/yql/YqlParser.java index d88e30cefcf..4ea221446a4 100644 --- a/container-search/src/main/java/com/yahoo/search/yql/YqlParser.java +++ b/container-search/src/main/java/com/yahoo/search/yql/YqlParser.java @@ -418,7 +418,8 @@ public class YqlParser implements Parser { var index = indexFactsSession.getIndex(field); boolean stringField = index.isString(); if (!index.isInteger() && !stringField) - throw new IllegalArgumentException("index " + field + " is not an integer or string field"); + throw new IllegalArgumentException("The in operator is only supported for integer and string fields. The field " + + field + " is not of these types"); Item item = null; if (stringField) { item = fillStringIn(ast, ast.getArgument(1), new StringInItem(field)); diff --git a/container-search/src/test/java/com/yahoo/search/yql/YqlParserTestCase.java b/container-search/src/test/java/com/yahoo/search/yql/YqlParserTestCase.java index 4ea40bb45e2..178163cf961 100644 --- a/container-search/src/test/java/com/yahoo/search/yql/YqlParserTestCase.java +++ b/container-search/src/test/java/com/yahoo/search/yql/YqlParserTestCase.java @@ -1199,7 +1199,8 @@ public class YqlParserTestCase { assertParseFail("select * from sources * where field not in (25)", new IllegalArgumentException("Expected AND, CALL, CONTAINS, EQ, GT, GTEQ, IN, LT, LTEQ or OR, got NOT_IN.")); assertParseFail("select * from sources * where float in (25)", - new IllegalArgumentException("index float is not an integer or string field")); + new IllegalArgumentException("The in operator is only supported for integer and string fields. " + + "The field float is not of these types")); } private static void assertNumericInItem(String field, long[] values, QueryTree query) { |