aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArne H Juul <arnej@yahooinc.com>2022-03-11 11:43:17 +0000
committerArne H Juul <arnej@yahooinc.com>2022-03-11 11:43:17 +0000
commit7a8ad22fcf5d1583c07076c979b4533576680ebd (patch)
treec2b65a9826553eaeff3b9fb7feeede6fbee63852
parent759f0f233d70a72718540d1fda3bf83338184055 (diff)
inherit directly
* instead of indirect (temporary) inherit from name, inherit the already-converted document directly. * keep schema order.
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertSchemaCollection.java9
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/parser/IntermediateCollection.java4
2 files changed, 10 insertions, 3 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertSchemaCollection.java b/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertSchemaCollection.java
index d32fae99f5a..67e6c88d043 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertSchemaCollection.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertSchemaCollection.java
@@ -33,7 +33,9 @@ import com.yahoo.vespa.documentmodel.DocumentSummary;
import com.yahoo.vespa.documentmodel.SummaryField;
import java.util.ArrayList;
+import java.util.LinkedHashMap;
import java.util.List;
+import java.util.Map;
import java.util.Optional;
/**
@@ -122,6 +124,8 @@ public class ConvertSchemaCollection {
typeConverter.convert(true);
}
+ private Map<String, SDDocumentType> convertedDocuments = new LinkedHashMap();
+
public List<Schema> convertToSchemas() {
typeConverter = new ConvertParsedTypes(orderedInput, docMan);
typeConverter.convert(false);
@@ -150,7 +154,9 @@ public class ConvertSchemaCollection {
{
SDDocumentType document = new SDDocumentType(parsed.name());
for (String inherit : parsed.getInherited()) {
- document.inherit(new DataTypeName(inherit));
+ var parent = convertedDocuments.get(inherit);
+ assert(parent != null);
+ document.inherit(parent);
}
for (var struct : parsed.getStructs()) {
var structProxy = fieldConverter.convertStructDeclaration(schema, struct);
@@ -165,6 +171,7 @@ public class ConvertSchemaCollection {
document.setFieldId(sdf, field.idOverride());
}
}
+ convertedDocuments.put(parsed.name(), document);
schema.addDocument(document);
}
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/parser/IntermediateCollection.java b/config-model/src/main/java/com/yahoo/searchdefinition/parser/IntermediateCollection.java
index 536caf55111..23b5195486b 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/parser/IntermediateCollection.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/parser/IntermediateCollection.java
@@ -12,7 +12,7 @@ import com.yahoo.yolean.Exceptions;
import java.io.File;
import java.util.ArrayList;
-import java.util.HashMap;
+import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@@ -27,7 +27,7 @@ public class IntermediateCollection {
private final DeployLogger deployLogger;
private final ModelContext.Properties modelProperties;
- private Map<String, ParsedSchema> parsedSchemas = new HashMap<>();
+ private Map<String, ParsedSchema> parsedSchemas = new LinkedHashMap<>();
IntermediateCollection() {
this.deployLogger = new BaseDeployLogger();