summaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/schema/processing/SummaryDynamicStructsArrays.java
diff options
context:
space:
mode:
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.java8
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)));
+ }
+
}