diff options
Diffstat (limited to 'config-model/src/main/java/com/yahoo/schema/processing/SummaryDynamicStructsArrays.java')
-rw-r--r-- | config-model/src/main/java/com/yahoo/schema/processing/SummaryDynamicStructsArrays.java | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/config-model/src/main/java/com/yahoo/schema/processing/SummaryDynamicStructsArrays.java b/config-model/src/main/java/com/yahoo/schema/processing/SummaryDynamicStructsArrays.java index ed1f47611eb..a899f5e82ab 100644 --- a/config-model/src/main/java/com/yahoo/schema/processing/SummaryDynamicStructsArrays.java +++ b/config-model/src/main/java/com/yahoo/schema/processing/SummaryDynamicStructsArrays.java @@ -13,7 +13,7 @@ import com.yahoo.vespa.model.container.search.QueryProfiles; /** * Fail if: - * An SD field explicitly says summary:dynamic , but the field is wset, array or struct. + * An SD field explicitly says summary:dynamic , but the field is non-string array, wset, or struct. * If there is an explicitly defined summary class, saying dynamic in one of its summary * fields is always legal. * @@ -31,7 +31,7 @@ public class SummaryDynamicStructsArrays extends Processor { for (SDField field : schema.allConcreteFields()) { DataType type = field.getDataType(); - if (type instanceof ArrayDataType || type instanceof WeightedSetDataType || type instanceof StructDataType) { + if (isNonStringArray(type) || type instanceof WeightedSetDataType || type instanceof StructDataType) { for (SummaryField sField : field.getSummaryFields().values()) { if (sField.getTransform().equals(SummaryTransform.DYNAMICTEASER)) { throw new IllegalArgumentException("For field '"+field.getName()+"': dynamic summary is illegal " + @@ -44,4 +44,8 @@ public class SummaryDynamicStructsArrays extends Processor { } } + private boolean isNonStringArray(DataType type) { + return (type instanceof ArrayDataType) && (!type.equals(DataType.getArray(DataType.STRING))); + } + } |