summaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateFieldTypes.java
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2017-01-16 23:16:32 +0100
committerGitHub <noreply@github.com>2017-01-16 23:16:32 +0100
commit9efbe90ee02b6b56f1a1208614c20d4b053a3135 (patch)
tree86dc5fcbd4e2244c7a82c2019a77635d33f7b87a /config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateFieldTypes.java
parent7305314406270fe663b7ef301cd6ad04714dcf9b (diff)
Revert "Revert "Revert "Bratseth/tensor type info in documents"""
Diffstat (limited to 'config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateFieldTypes.java')
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateFieldTypes.java20
1 files changed, 8 insertions, 12 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateFieldTypes.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateFieldTypes.java
index 9ee5f48a906..1349abc3795 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateFieldTypes.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateFieldTypes.java
@@ -2,7 +2,6 @@
package com.yahoo.searchdefinition.processing;
import com.yahoo.config.application.api.DeployLogger;
-import com.yahoo.document.TensorDataType;
import com.yahoo.searchdefinition.RankProfileRegistry;
import com.yahoo.searchdefinition.document.Attribute;
import com.yahoo.document.DataType;
@@ -50,25 +49,22 @@ public class ValidateFieldTypes extends Processor {
DataType seenType = seenFields.get(fieldName);
if (seenType == null) {
seenFields.put(fieldName, fieldType);
- } else if ( ! compatibleTypes(seenType, fieldType)) {
- throw newProcessException(searchName, fieldName, "Incompatible types. Expected " +
+ } else if ( ! equalTypes(seenType, fieldType)) {
+ throw newProcessException(searchName, fieldName, "Duplicate field name with different types. Expected " +
seenType.getName() + " for " + fieldDesc +
" '" + fieldName + "', got " + fieldType.getName() + ".");
}
}
- private boolean compatibleTypes(DataType seenType, DataType fieldType) {
+ private boolean equalTypes(DataType d1, DataType d2) {
// legacy tag field type compatibility; probably not needed any more (Oct 2016)
- if ("tag".equals(seenType.getName())) {
- return "tag".equals(fieldType.getName()) || "WeightedSet<string>".equals(fieldType.getName());
+ if ("tag".equals(d1.getName())) {
+ return "tag".equals(d2.getName()) || "WeightedSet<string>".equals(d2.getName());
}
- if ("tag".equals(fieldType.getName())) {
- return "tag".equals(seenType.getName()) || "WeightedSet<string>".equals(seenType.getName());
+ if ("tag".equals(d2.getName())) {
+ return "tag".equals(d1.getName()) || "WeightedSet<string>".equals(d1.getName());
}
- if (seenType instanceof TensorDataType && fieldType instanceof TensorDataType) {
- return fieldType.isAssignableFrom(seenType); // TODO: Just do this for all types
- }
- return seenType.equals(fieldType);
+ return d1.equals(d2);
}
}