diff options
Diffstat (limited to 'indexinglanguage')
4 files changed, 13 insertions, 6 deletions
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/GetFieldExpression.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/GetFieldExpression.java index 483139f746a..30d4ff37587 100644 --- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/GetFieldExpression.java +++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/GetFieldExpression.java @@ -32,7 +32,8 @@ public class GetFieldExpression extends Expression { StructuredFieldValue struct = (StructuredFieldValue)input; Field field = struct.getField(fieldName); if (field == null) { - throw new IllegalArgumentException("Field '" + fieldName + "' not found."); + throw new IllegalArgumentException("Field '" + fieldName + "' not found in struct type '" + + struct.getDataType().getName() + "'"); } ctx.setValue(struct.getFieldValue(field)); } @@ -45,7 +46,8 @@ public class GetFieldExpression extends Expression { } Field field = ((StructuredDataType)input).getField(fieldName); if (field == null) { - throw new VerificationException(this, "Field '" + fieldName + "' not found."); + throw new VerificationException(this, "Field '" + fieldName + "' not found in struct type '" + + input.getName() + "'"); } context.setValue(field.getDataType()); } diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/GetVarExpression.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/GetVarExpression.java index 7bb99a4506a..6079652174d 100644 --- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/GetVarExpression.java +++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/GetVarExpression.java @@ -64,4 +64,5 @@ public class GetVarExpression extends Expression { public int hashCode() { return getClass().hashCode() + varName.hashCode(); } + } diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/InputExpression.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/InputExpression.java index 676bcd74a6c..e94b5df1d24 100644 --- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/InputExpression.java +++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/InputExpression.java @@ -28,8 +28,7 @@ public class InputExpression extends Expression { } @Override - protected void doExecute(ExecutionContext ctx) - { + protected void doExecute(ExecutionContext ctx) { if (fieldPath != null) { ctx.setValue(ctx.getInputValue(fieldPath)); } else { @@ -79,6 +78,7 @@ public class InputExpression extends Expression { } public static class FieldPathOptimizer implements ObjectOperation, ObjectPredicate { + private final DocumentType documentType; public FieldPathOptimizer(DocumentType documentType) { @@ -95,9 +95,11 @@ public class InputExpression extends Expression { public boolean check(Object obj) { return obj instanceof InputExpression; } + } public static class InputFieldNameExtractor implements ObjectOperation, ObjectPredicate { + private List<String> inputFieldNames = new ArrayList<>(1); public List<String> getInputFieldNames() { return inputFieldNames; } @@ -111,5 +113,7 @@ public class InputExpression extends Expression { public boolean check(Object obj) { return obj instanceof InputExpression; } + } + } diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/GetFieldTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/GetFieldTestCase.java index 3b5569995e6..af1a58a1de6 100644 --- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/GetFieldTestCase.java +++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/GetFieldTestCase.java @@ -40,7 +40,7 @@ public class GetFieldTestCase { assertVerify(type, exp, DataType.STRING); assertVerifyThrows(null, exp, "Expected any input, got null."); assertVerifyThrows(DataType.INT, exp, "Expected structured input, got int."); - assertVerifyThrows(type, new GetFieldExpression("bar"), "Field 'bar' not found."); + assertVerifyThrows(type, new GetFieldExpression("bar"), "Field 'bar' not found in struct type 'my_struct'"); } @Test @@ -79,7 +79,7 @@ public class GetFieldTestCase { new GetFieldExpression("foo").execute(new StructDataType("my_struct").createFieldValue()); fail(); } catch (IllegalArgumentException e) { - assertEquals("Field 'foo' not found.", e.getMessage()); + assertEquals("Field 'foo' not found in struct type 'my_struct'", e.getMessage()); } } } |