aboutsummaryrefslogtreecommitdiffstats
path: root/container-search
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@online.no>2023-11-30 10:47:28 +0100
committerTor Egge <Tor.Egge@online.no>2023-11-30 10:47:28 +0100
commit8a14e1290e46a5e8ccee017fdb2b9d01c64c0cac (patch)
treee72bd5a80556f59d3783bf2b8bb91f41e4f284df /container-search
parent89f5b616f391124a8fbb6d2e9c4e8c4d32b91efa (diff)
Update exception message when in operator is used with wrong field type.
Diffstat (limited to 'container-search')
-rw-r--r--container-search/src/main/java/com/yahoo/search/yql/YqlParser.java3
-rw-r--r--container-search/src/test/java/com/yahoo/search/yql/YqlParserTestCase.java3
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) {