From 1d04fdd423900847ddfc22f2a0f50134b5ea47d7 Mon Sep 17 00:00:00 2001 From: Arne H Juul Date: Thu, 24 Mar 2022 12:37:23 +0000 Subject: allow duplicate struct names (in different document types) --- .../searchdefinition/DocumentModelBuilder.java | 27 +++- .../parser/ConvertParsedSchemas.java | 18 +-- .../src/test/configmodel/types/documentmanager.cfg | 158 +++++++++------------ .../src/test/derived/arrays/documentmanager.cfg | 8 +- .../derived/duplicate_struct/documentmanager.cfg | 8 ++ .../derived/duplicate_struct/documenttypes.cfg | 9 ++ .../derived/streamingstruct/documentmanager.cfg | 8 +- .../src/test/derived/types/documentmanager.cfg | 136 +++++++----------- .../derived/DuplicateStructTestCase.java | 1 - 9 files changed, 168 insertions(+), 205 deletions(-) (limited to 'config-model') diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/DocumentModelBuilder.java b/config-model/src/main/java/com/yahoo/searchdefinition/DocumentModelBuilder.java index 5b7b23d69d4..bfe0db6f65d 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/DocumentModelBuilder.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/DocumentModelBuilder.java @@ -160,7 +160,7 @@ public class DocumentModelBuilder { private static void addSearchField(SDField field, SearchDef searchDef) { SearchField searchField = new SearchField(field, - field.getIndices().containsKey(field.getName()) && field.getIndices().get(field.getName()).getType().equals(Index.Type.VESPA), + field.getIndices().containsKey(field.getName()) && field.getIndices().get(field.getName()).getType().equals(Index.Type.VESPA), field.getAttributes().containsKey(field.getName())); searchDef.add(searchField); @@ -485,7 +485,27 @@ public class DocumentModelBuilder { targetDt.add(type); } return true; - } else if ((type instanceof StructDataType) && (oldType instanceof StructDataType)) { + } + if (oldType == type) { + return false; + } + if (targetDt.getDataType(type.getId()) == null) { + if ((oldType instanceof OwnedStructDataType) + && (type instanceof OwnedStructDataType)) + { + var oldOwned = (OwnedStructDataType) oldType; + var newOwned = (OwnedStructDataType) type; + if (newOwned.getOwnerName().equals(targetDt.getName()) && + ! oldOwned.getOwnerName().equals(targetDt.getName())) + { + if ( ! dryRun) { + targetDt.add(type); + } + return true; + } + } + } + if ((type instanceof StructDataType) && (oldType instanceof StructDataType)) { StructDataType s = (StructDataType) type; StructDataType os = (StructDataType) oldType; if ((os.getFieldCount() == 0) && (s.getFieldCount() > os.getFieldCount())) { @@ -561,7 +581,6 @@ public class DocumentModelBuilder { @SuppressWarnings("deprecation") private StructDataType handleStruct(SDDocumentType type) { - // System.err.println("handle struct " + type + " for doc " + targetDt.getName()); if (type.isStruct()) { var st = type.getStruct(); if (st.getName().equals(type.getName()) && @@ -593,7 +612,7 @@ public class DocumentModelBuilder { addType(s); return s; } - + } private static Set convertDocumentReferencesToNames(Optional documentReferences) { diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedSchemas.java b/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedSchemas.java index e4d03a3f471..9c2d29282ae 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedSchemas.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedSchemas.java @@ -108,25 +108,15 @@ public class ConvertParsedSchemas { ConvertParsedFields fieldConverter) { SDDocumentType document = new SDDocumentType(parsed.name()); + for (var struct : parsed.getStructs()) { + var structProxy = fieldConverter.convertStructDeclaration(schema, document, struct); + document.addType(structProxy); + } for (String inherit : parsed.getInherited()) { var parent = convertedDocuments.get(inherit); assert(parent != null); document.inherit(parent); } - for (var struct : parsed.getStructs()) { - var structProxy = fieldConverter.convertStructDeclaration(schema, document, struct); - var old = document.getType(struct.name()); - if (old == null) { - document.addType(structProxy); - } else { - var oldFields = old.fieldSet(); - var newFields = structProxy.fieldSet(); - if (! newFields.equals(oldFields)) { - throw new IllegalArgumentException("Cannot modify already-existing struct: " + struct.name()); - } - deployLogger.logApplicationPackage(Level.WARNING, "Duplicate struct declaration for: " + struct.name()); - } - } for (var annotation : parsed.getAnnotations()) { fieldConverter.convertAnnotation(schema, document, annotation); } diff --git a/config-model/src/test/configmodel/types/documentmanager.cfg b/config-model/src/test/configmodel/types/documentmanager.cfg index 7a983693c22..00920cc6d76 100644 --- a/config-model/src/test/configmodel/types/documentmanager.cfg +++ b/config-model/src/test/configmodel/types/documentmanager.cfg @@ -72,93 +72,65 @@ doctype[1].fieldsets{[document]}.fields[25] "structfield" doctype[1].fieldsets{[document]}.fields[26] "tagfield" doctype[1].arraytype[0].idx 10017 doctype[1].arraytype[0].elementtype 10007 -doctype[1].arraytype[1].idx 10024 -doctype[1].arraytype[1].elementtype 10023 -doctype[1].arraytype[2].idx 10031 -doctype[1].arraytype[2].elementtype 10007 -doctype[1].arraytype[3].idx 10032 -doctype[1].arraytype[3].elementtype 10033 -doctype[1].arraytype[4].idx 10033 -doctype[1].arraytype[4].elementtype 10034 -doctype[1].arraytype[5].idx 10034 -doctype[1].arraytype[5].elementtype 10012 -doctype[1].arraytype[6].idx 10035 -doctype[1].arraytype[6].elementtype 10036 -doctype[1].arraytype[7].idx 10037 -doctype[1].arraytype[7].elementtype 10038 -doctype[1].arraytype[8].idx 10039 -doctype[1].arraytype[8].elementtype 10040 -doctype[1].arraytype[9].idx 10040 -doctype[1].arraytype[9].elementtype 10012 -doctype[1].arraytype[10].idx 10042 -doctype[1].arraytype[10].elementtype 10003 -doctype[1].arraytype[11].idx 10045 -doctype[1].arraytype[11].elementtype 10041 -doctype[1].maptype[0].idx 10025 +doctype[1].arraytype[1].idx 10022 +doctype[1].arraytype[1].elementtype 10021 +doctype[1].arraytype[2].idx 10029 +doctype[1].arraytype[2].elementtype 10030 +doctype[1].arraytype[3].idx 10030 +doctype[1].arraytype[3].elementtype 10031 +doctype[1].arraytype[4].idx 10031 +doctype[1].arraytype[4].elementtype 10012 +doctype[1].arraytype[5].idx 10032 +doctype[1].arraytype[5].elementtype 10023 +doctype[1].arraytype[6].idx 10033 +doctype[1].arraytype[6].elementtype 10034 +doctype[1].arraytype[7].idx 10036 +doctype[1].arraytype[7].elementtype 10003 +doctype[1].arraytype[8].idx 10038 +doctype[1].arraytype[8].elementtype 10035 +doctype[1].maptype[0].idx 10023 doctype[1].maptype[0].keytype 10012 doctype[1].maptype[0].valuetype 10012 -doctype[1].maptype[1].idx 10026 +doctype[1].maptype[1].idx 10024 doctype[1].maptype[1].keytype 10012 doctype[1].maptype[1].valuetype 10007 -doctype[1].maptype[2].idx 10027 +doctype[1].maptype[2].idx 10025 doctype[1].maptype[2].keytype 10012 doctype[1].maptype[2].valuetype 10005 -doctype[1].maptype[3].idx 10028 +doctype[1].maptype[3].idx 10026 doctype[1].maptype[3].keytype 10007 doctype[1].maptype[3].valuetype 10008 -doctype[1].maptype[4].idx 10029 +doctype[1].maptype[4].idx 10027 doctype[1].maptype[4].keytype 10007 doctype[1].maptype[4].valuetype 10004 -doctype[1].maptype[5].idx 10030 +doctype[1].maptype[5].idx 10028 doctype[1].maptype[5].keytype 10012 -doctype[1].maptype[5].valuetype 10031 -doctype[1].maptype[6].idx 10036 -doctype[1].maptype[6].keytype 10012 -doctype[1].maptype[6].valuetype 10012 -doctype[1].maptype[7].idx 10038 +doctype[1].maptype[5].valuetype 10017 +doctype[1].maptype[6].idx 10034 +doctype[1].maptype[6].keytype 10007 +doctype[1].maptype[6].valuetype 10030 +doctype[1].maptype[7].idx 10037 doctype[1].maptype[7].keytype 10007 -doctype[1].maptype[7].valuetype 10039 -doctype[1].maptype[8].idx 10043 -doctype[1].maptype[8].keytype 10012 -doctype[1].maptype[8].valuetype 10012 -doctype[1].maptype[9].idx 10044 -doctype[1].maptype[9].keytype 10007 -doctype[1].maptype[9].valuetype 10041 -doctype[1].maptype[10].idx 10046 -doctype[1].maptype[10].keytype 10007 -doctype[1].maptype[10].valuetype 10047 -doctype[1].maptype[11].idx 10048 -doctype[1].maptype[11].keytype 10012 -doctype[1].maptype[11].valuetype 10008 +doctype[1].maptype[7].valuetype 10035 +doctype[1].maptype[8].idx 10039 +doctype[1].maptype[8].keytype 10007 +doctype[1].maptype[8].valuetype 10040 +doctype[1].maptype[9].idx 10041 +doctype[1].maptype[9].keytype 10012 +doctype[1].maptype[9].valuetype 10008 doctype[1].wsettype[0].idx 10018 doctype[1].wsettype[0].elementtype 10012 doctype[1].wsettype[0].createifnonexistent false doctype[1].wsettype[0].removeifzero false doctype[1].wsettype[1].idx 10019 doctype[1].wsettype[1].elementtype 10012 -doctype[1].wsettype[1].createifnonexistent true +doctype[1].wsettype[1].createifnonexistent false doctype[1].wsettype[1].removeifzero true doctype[1].wsettype[2].idx 10020 doctype[1].wsettype[2].elementtype 10012 -doctype[1].wsettype[2].createifnonexistent false -doctype[1].wsettype[2].removeifzero true -doctype[1].wsettype[3].idx 10021 -doctype[1].wsettype[3].elementtype 10012 -doctype[1].wsettype[3].createifnonexistent true -doctype[1].wsettype[3].removeifzero false -doctype[1].wsettype[4].idx 10022 -doctype[1].wsettype[4].elementtype 10012 -doctype[1].wsettype[4].createifnonexistent true -doctype[1].wsettype[4].removeifzero true -doctype[1].wsettype[5].idx 10049 -doctype[1].wsettype[5].elementtype 10012 -doctype[1].wsettype[5].createifnonexistent true -doctype[1].wsettype[5].removeifzero true -doctype[1].wsettype[6].idx 10050 -doctype[1].wsettype[6].elementtype 10012 -doctype[1].wsettype[6].createifnonexistent true -doctype[1].wsettype[6].removeifzero true -doctype[1].structtype[0].idx 10023 +doctype[1].wsettype[2].createifnonexistent true +doctype[1].wsettype[2].removeifzero false +doctype[1].structtype[0].idx 10021 doctype[1].structtype[0].name "sct" doctype[1].structtype[0].field[0].name "s1" doctype[1].structtype[0].field[0].internalid 2146820765 @@ -166,21 +138,21 @@ doctype[1].structtype[0].field[0].type 10012 doctype[1].structtype[0].field[1].name "s2" doctype[1].structtype[0].field[1].internalid 45366795 doctype[1].structtype[0].field[1].type 10012 -doctype[1].structtype[1].idx 10041 +doctype[1].structtype[1].idx 10035 doctype[1].structtype[1].name "mystruct" doctype[1].structtype[1].field[0].name "bytearr" doctype[1].structtype[1].field[0].internalid 1079701754 -doctype[1].structtype[1].field[0].type 10042 +doctype[1].structtype[1].field[0].type 10036 doctype[1].structtype[1].field[1].name "mymap" doctype[1].structtype[1].field[1].internalid 1954178122 -doctype[1].structtype[1].field[1].type 10043 +doctype[1].structtype[1].field[1].type 10023 doctype[1].structtype[1].field[2].name "title" doctype[1].structtype[1].field[2].internalid 567626448 doctype[1].structtype[1].field[2].type 10012 doctype[1].structtype[1].field[3].name "structfield" doctype[1].structtype[1].field[3].internalid 1726890940 doctype[1].structtype[1].field[3].type 10012 -doctype[1].structtype[2].idx 10047 +doctype[1].structtype[2].idx 10040 doctype[1].structtype[2].name "folder" doctype[1].structtype[2].field[0].name "Version" doctype[1].structtype[2].field[0].internalid 64430502 @@ -190,10 +162,10 @@ doctype[1].structtype[2].field[1].internalid 2002760220 doctype[1].structtype[2].field[1].type 10012 doctype[1].structtype[2].field[2].name "FlagsCounter" doctype[1].structtype[2].field[2].internalid 1741227606 -doctype[1].structtype[2].field[2].type 10048 +doctype[1].structtype[2].field[2].type 10041 doctype[1].structtype[2].field[3].name "anotherfolder" doctype[1].structtype[2].field[3].internalid 1582421848 -doctype[1].structtype[2].field[3].type 10047 +doctype[1].structtype[2].field[3].type 10040 doctype[1].structtype[3].idx 10016 doctype[1].structtype[3].name "types.header" doctype[1].structtype[3].field[0].name "abyte" @@ -213,70 +185,70 @@ doctype[1].structtype[3].field[4].internalid 1041567475 doctype[1].structtype[3].field[4].type 10009 doctype[1].structtype[3].field[5].name "setfield2" doctype[1].structtype[3].field[5].internalid 1066659198 -doctype[1].structtype[3].field[5].type 10019 +doctype[1].structtype[3].field[5].type 10013 doctype[1].structtype[3].field[6].name "setfield3" doctype[1].structtype[3].field[6].internalid 1180155772 -doctype[1].structtype[3].field[6].type 10020 +doctype[1].structtype[3].field[6].type 10019 doctype[1].structtype[3].field[7].name "setfield4" doctype[1].structtype[3].field[7].internalid 1254131631 -doctype[1].structtype[3].field[7].type 10021 +doctype[1].structtype[3].field[7].type 10020 doctype[1].structtype[3].field[8].name "tagfield" doctype[1].structtype[3].field[8].internalid 1653562069 -doctype[1].structtype[3].field[8].type 10022 +doctype[1].structtype[3].field[8].type 10013 doctype[1].structtype[3].field[9].name "structfield" doctype[1].structtype[3].field[9].internalid 486207386 -doctype[1].structtype[3].field[9].type 10023 +doctype[1].structtype[3].field[9].type 10021 doctype[1].structtype[3].field[10].name "structarrayfield" doctype[1].structtype[3].field[10].internalid 335048518 -doctype[1].structtype[3].field[10].type 10024 +doctype[1].structtype[3].field[10].type 10022 doctype[1].structtype[3].field[11].name "stringmapfield" doctype[1].structtype[3].field[11].internalid 117465687 -doctype[1].structtype[3].field[11].type 10025 +doctype[1].structtype[3].field[11].type 10023 doctype[1].structtype[3].field[12].name "intmapfield" doctype[1].structtype[3].field[12].internalid 121004462 -doctype[1].structtype[3].field[12].type 10026 +doctype[1].structtype[3].field[12].type 10024 doctype[1].structtype[3].field[13].name "floatmapfield" doctype[1].structtype[3].field[13].internalid 1239120925 -doctype[1].structtype[3].field[13].type 10027 +doctype[1].structtype[3].field[13].type 10025 doctype[1].structtype[3].field[14].name "longmapfield" doctype[1].structtype[3].field[14].internalid 477718745 -doctype[1].structtype[3].field[14].type 10028 +doctype[1].structtype[3].field[14].type 10026 doctype[1].structtype[3].field[15].name "doublemapfield" doctype[1].structtype[3].field[15].internalid 877047192 -doctype[1].structtype[3].field[15].type 10029 +doctype[1].structtype[3].field[15].type 10027 doctype[1].structtype[3].field[16].name "arraymapfield" doctype[1].structtype[3].field[16].internalid 1670805928 -doctype[1].structtype[3].field[16].type 10030 +doctype[1].structtype[3].field[16].type 10028 doctype[1].structtype[3].field[17].name "arrarr" doctype[1].structtype[3].field[17].internalid 1962567166 -doctype[1].structtype[3].field[17].type 10032 +doctype[1].structtype[3].field[17].type 10029 doctype[1].structtype[3].field[18].name "maparr" doctype[1].structtype[3].field[18].internalid 904375219 -doctype[1].structtype[3].field[18].type 10035 +doctype[1].structtype[3].field[18].type 10032 doctype[1].structtype[3].field[19].name "complexarray" doctype[1].structtype[3].field[19].internalid 795629533 -doctype[1].structtype[3].field[19].type 10037 +doctype[1].structtype[3].field[19].type 10033 doctype[1].structtype[3].field[20].name "mystructfield" doctype[1].structtype[3].field[20].internalid 1348513378 -doctype[1].structtype[3].field[20].type 10041 +doctype[1].structtype[3].field[20].type 10035 doctype[1].structtype[3].field[21].name "mystructmap" doctype[1].structtype[3].field[21].internalid 1511423250 -doctype[1].structtype[3].field[21].type 10044 +doctype[1].structtype[3].field[21].type 10037 doctype[1].structtype[3].field[22].name "mystructarr" doctype[1].structtype[3].field[22].internalid 595856991 -doctype[1].structtype[3].field[22].type 10045 +doctype[1].structtype[3].field[22].type 10038 doctype[1].structtype[3].field[23].name "Folders" doctype[1].structtype[3].field[23].internalid 34575524 -doctype[1].structtype[3].field[23].type 10046 +doctype[1].structtype[3].field[23].type 10039 doctype[1].structtype[3].field[24].name "juletre" doctype[1].structtype[3].field[24].internalid 1039981530 doctype[1].structtype[3].field[24].type 10008 doctype[1].structtype[3].field[25].name "album0" doctype[1].structtype[3].field[25].internalid 764312262 -doctype[1].structtype[3].field[25].type 10049 +doctype[1].structtype[3].field[25].type 10013 doctype[1].structtype[3].field[26].name "album1" doctype[1].structtype[3].field[26].internalid 1967160809 -doctype[1].structtype[3].field[26].type 10050 +doctype[1].structtype[3].field[26].type 10013 doctype[1].structtype[3].field[27].name "other" doctype[1].structtype[3].field[27].internalid 2443357 doctype[1].structtype[3].field[27].type 10008 diff --git a/config-model/src/test/derived/arrays/documentmanager.cfg b/config-model/src/test/derived/arrays/documentmanager.cfg index 7da3b44f43c..9bf53699140 100644 --- a/config-model/src/test/derived/arrays/documentmanager.cfg +++ b/config-model/src/test/derived/arrays/documentmanager.cfg @@ -55,9 +55,7 @@ doctype[].arraytype[].idx 10017 doctype[].arraytype[].elementtype 10012 doctype[].arraytype[].idx 10018 doctype[].arraytype[].elementtype 10007 -doctype[].arraytype[].idx 10019 -doctype[].arraytype[].elementtype 10012 -doctype[].wsettype[].idx 10020 +doctype[].wsettype[].idx 10019 doctype[].wsettype[].elementtype 10012 doctype[].wsettype[].createifnonexistent false doctype[].wsettype[].removeifzero false @@ -74,7 +72,7 @@ doctype[].structtype[].field[].internalid 493339625 doctype[].structtype[].field[].type 10012 doctype[].structtype[].field[].name "b" doctype[].structtype[].field[].internalid 1913648692 -doctype[].structtype[].field[].type 10019 +doctype[].structtype[].field[].type 10017 doctype[].structtype[].field[].name "c" doctype[].structtype[].field[].internalid 2069269023 -doctype[].structtype[].field[].type 10020 +doctype[].structtype[].field[].type 10019 diff --git a/config-model/src/test/derived/duplicate_struct/documentmanager.cfg b/config-model/src/test/derived/duplicate_struct/documentmanager.cfg index 077b57df800..bb791943d41 100644 --- a/config-model/src/test/derived/duplicate_struct/documentmanager.cfg +++ b/config-model/src/test/derived/duplicate_struct/documentmanager.cfg @@ -76,3 +76,11 @@ doctype[].structtype[].name "foobar.header" doctype[].structtype[].field[].name "title" doctype[].structtype[].field[].internalid 567626448 doctype[].structtype[].field[].type 10012 +doctype[].structtype[].idx 10021 +doctype[].structtype[].name "mystruct" +doctype[].structtype[].field[].name "name" +doctype[].structtype[].field[].internalid 1160796772 +doctype[].structtype[].field[].type 10012 +doctype[].structtype[].field[].name "company" +doctype[].structtype[].field[].internalid 2010814026 +doctype[].structtype[].field[].type 10012 diff --git a/config-model/src/test/derived/duplicate_struct/documenttypes.cfg b/config-model/src/test/derived/duplicate_struct/documenttypes.cfg index 867e1e70e7a..13567666674 100644 --- a/config-model/src/test/derived/duplicate_struct/documenttypes.cfg +++ b/config-model/src/test/derived/duplicate_struct/documenttypes.cfg @@ -86,3 +86,12 @@ doctype[].structtype[].field[].name "title" doctype[].structtype[].field[].internalid 567626448 doctype[].structtype[].field[].type 10012 doctype[].structtype[].internalid -1365874608 +doctype[].structtype[].idx 10021 +doctype[].structtype[].name "mystruct" +doctype[].structtype[].field[].name "name" +doctype[].structtype[].field[].internalid 1160796772 +doctype[].structtype[].field[].type 10012 +doctype[].structtype[].field[].name "company" +doctype[].structtype[].field[].internalid 2010814026 +doctype[].structtype[].field[].type 10012 +doctype[].structtype[].internalid -2092985853 diff --git a/config-model/src/test/derived/streamingstruct/documentmanager.cfg b/config-model/src/test/derived/streamingstruct/documentmanager.cfg index 30dd3fc1d35..81de2d7ebdb 100644 --- a/config-model/src/test/derived/streamingstruct/documentmanager.cfg +++ b/config-model/src/test/derived/streamingstruct/documentmanager.cfg @@ -62,10 +62,6 @@ doctype[].fieldsets{[document]}.fields[] "normalfields" doctype[].fieldsets{[document]}.fields[] "subject" doctype[].arraytype[].idx 10020 doctype[].arraytype[].elementtype 10017 -doctype[].arraytype[].idx 10021 -doctype[].arraytype[].elementtype 10017 -doctype[].arraytype[].idx 10022 -doctype[].arraytype[].elementtype 10017 doctype[].maptype[].idx 10018 doctype[].maptype[].keytype 10008 doctype[].maptype[].valuetype 10012 @@ -128,10 +124,10 @@ doctype[].structtype[].field[].internalid 1863296233 doctype[].structtype[].field[].type 10020 doctype[].structtype[].field[].name "array2" doctype[].structtype[].field[].internalid 1491532076 -doctype[].structtype[].field[].type 10021 +doctype[].structtype[].field[].type 10020 doctype[].structtype[].field[].name "array3" doctype[].structtype[].field[].internalid 1585514103 -doctype[].structtype[].field[].type 10022 +doctype[].structtype[].field[].type 10020 doctype[].structtype[].field[].name "subject" doctype[].structtype[].field[].internalid 1677912730 doctype[].structtype[].field[].type 10017 diff --git a/config-model/src/test/derived/types/documentmanager.cfg b/config-model/src/test/derived/types/documentmanager.cfg index f74ce87e6cb..9a73664ac86 100644 --- a/config-model/src/test/derived/types/documentmanager.cfg +++ b/config-model/src/test/derived/types/documentmanager.cfg @@ -73,62 +73,50 @@ doctype[].fieldsets{[document]}.fields[] "structfield" doctype[].fieldsets{[document]}.fields[] "tagfield" doctype[].arraytype[].idx 10017 doctype[].arraytype[].elementtype 10007 -doctype[].arraytype[].idx 10024 -doctype[].arraytype[].elementtype 10023 +doctype[].arraytype[].idx 10022 +doctype[].arraytype[].elementtype 10021 +doctype[].arraytype[].idx 10029 +doctype[].arraytype[].elementtype 10030 +doctype[].arraytype[].idx 10030 +doctype[].arraytype[].elementtype 10031 doctype[].arraytype[].idx 10031 -doctype[].arraytype[].elementtype 10007 +doctype[].arraytype[].elementtype 10012 doctype[].arraytype[].idx 10032 -doctype[].arraytype[].elementtype 10033 +doctype[].arraytype[].elementtype 10023 doctype[].arraytype[].idx 10033 doctype[].arraytype[].elementtype 10034 -doctype[].arraytype[].idx 10034 -doctype[].arraytype[].elementtype 10012 -doctype[].arraytype[].idx 10035 -doctype[].arraytype[].elementtype 10036 -doctype[].arraytype[].idx 10037 -doctype[].arraytype[].elementtype 10038 -doctype[].arraytype[].idx 10039 -doctype[].arraytype[].elementtype 10040 -doctype[].arraytype[].idx 10040 -doctype[].arraytype[].elementtype 10012 -doctype[].arraytype[].idx 10042 +doctype[].arraytype[].idx 10036 doctype[].arraytype[].elementtype 10003 -doctype[].arraytype[].idx 10045 -doctype[].arraytype[].elementtype 10041 -doctype[].maptype[].idx 10025 +doctype[].arraytype[].idx 10038 +doctype[].arraytype[].elementtype 10035 +doctype[].maptype[].idx 10023 doctype[].maptype[].keytype 10012 doctype[].maptype[].valuetype 10012 -doctype[].maptype[].idx 10026 +doctype[].maptype[].idx 10024 doctype[].maptype[].keytype 10012 doctype[].maptype[].valuetype 10007 -doctype[].maptype[].idx 10027 +doctype[].maptype[].idx 10025 doctype[].maptype[].keytype 10012 doctype[].maptype[].valuetype 10005 -doctype[].maptype[].idx 10028 +doctype[].maptype[].idx 10026 doctype[].maptype[].keytype 10007 doctype[].maptype[].valuetype 10008 -doctype[].maptype[].idx 10029 +doctype[].maptype[].idx 10027 doctype[].maptype[].keytype 10007 doctype[].maptype[].valuetype 10004 -doctype[].maptype[].idx 10030 -doctype[].maptype[].keytype 10012 -doctype[].maptype[].valuetype 10031 -doctype[].maptype[].idx 10036 +doctype[].maptype[].idx 10028 doctype[].maptype[].keytype 10012 -doctype[].maptype[].valuetype 10012 -doctype[].maptype[].idx 10038 +doctype[].maptype[].valuetype 10017 +doctype[].maptype[].idx 10034 doctype[].maptype[].keytype 10007 -doctype[].maptype[].valuetype 10039 -doctype[].maptype[].idx 10043 -doctype[].maptype[].keytype 10012 -doctype[].maptype[].valuetype 10012 -doctype[].maptype[].idx 10044 +doctype[].maptype[].valuetype 10030 +doctype[].maptype[].idx 10037 doctype[].maptype[].keytype 10007 -doctype[].maptype[].valuetype 10041 -doctype[].maptype[].idx 10046 +doctype[].maptype[].valuetype 10035 +doctype[].maptype[].idx 10039 doctype[].maptype[].keytype 10007 -doctype[].maptype[].valuetype 10047 -doctype[].maptype[].idx 10048 +doctype[].maptype[].valuetype 10040 +doctype[].maptype[].idx 10041 doctype[].maptype[].keytype 10012 doctype[].maptype[].valuetype 10008 doctype[].wsettype[].idx 10018 @@ -137,29 +125,13 @@ doctype[].wsettype[].createifnonexistent false doctype[].wsettype[].removeifzero false doctype[].wsettype[].idx 10019 doctype[].wsettype[].elementtype 10012 -doctype[].wsettype[].createifnonexistent true -doctype[].wsettype[].removeifzero true -doctype[].wsettype[].idx 10020 -doctype[].wsettype[].elementtype 10012 doctype[].wsettype[].createifnonexistent false doctype[].wsettype[].removeifzero true -doctype[].wsettype[].idx 10021 +doctype[].wsettype[].idx 10020 doctype[].wsettype[].elementtype 10012 doctype[].wsettype[].createifnonexistent true doctype[].wsettype[].removeifzero false -doctype[].wsettype[].idx 10022 -doctype[].wsettype[].elementtype 10012 -doctype[].wsettype[].createifnonexistent true -doctype[].wsettype[].removeifzero true -doctype[].wsettype[].idx 10049 -doctype[].wsettype[].elementtype 10012 -doctype[].wsettype[].createifnonexistent true -doctype[].wsettype[].removeifzero true -doctype[].wsettype[].idx 10050 -doctype[].wsettype[].elementtype 10012 -doctype[].wsettype[].createifnonexistent true -doctype[].wsettype[].removeifzero true -doctype[].structtype[].idx 10023 +doctype[].structtype[].idx 10021 doctype[].structtype[].name "sct" doctype[].structtype[].field[].name "s1" doctype[].structtype[].field[].internalid 2146820765 @@ -167,21 +139,21 @@ doctype[].structtype[].field[].type 10012 doctype[].structtype[].field[].name "s2" doctype[].structtype[].field[].internalid 45366795 doctype[].structtype[].field[].type 10012 -doctype[].structtype[].idx 10041 +doctype[].structtype[].idx 10035 doctype[].structtype[].name "mystruct" doctype[].structtype[].field[].name "bytearr" doctype[].structtype[].field[].internalid 1079701754 -doctype[].structtype[].field[].type 10042 +doctype[].structtype[].field[].type 10036 doctype[].structtype[].field[].name "mymap" doctype[].structtype[].field[].internalid 1954178122 -doctype[].structtype[].field[].type 10043 +doctype[].structtype[].field[].type 10023 doctype[].structtype[].field[].name "title" doctype[].structtype[].field[].internalid 567626448 doctype[].structtype[].field[].type 10012 doctype[].structtype[].field[].name "structfield" doctype[].structtype[].field[].internalid 1726890940 doctype[].structtype[].field[].type 10012 -doctype[].structtype[].idx 10047 +doctype[].structtype[].idx 10040 doctype[].structtype[].name "folder" doctype[].structtype[].field[].name "Version" doctype[].structtype[].field[].internalid 64430502 @@ -191,10 +163,10 @@ doctype[].structtype[].field[].internalid 2002760220 doctype[].structtype[].field[].type 10012 doctype[].structtype[].field[].name "FlagsCounter" doctype[].structtype[].field[].internalid 1741227606 -doctype[].structtype[].field[].type 10048 +doctype[].structtype[].field[].type 10041 doctype[].structtype[].field[].name "anotherfolder" doctype[].structtype[].field[].internalid 1582421848 -doctype[].structtype[].field[].type 10047 +doctype[].structtype[].field[].type 10040 doctype[].structtype[].idx 10016 doctype[].structtype[].name "types.header" doctype[].structtype[].field[].name "abyte" @@ -217,70 +189,70 @@ doctype[].structtype[].field[].internalid 761581914 doctype[].structtype[].field[].type 10018 doctype[].structtype[].field[].name "setfield2" doctype[].structtype[].field[].internalid 1066659198 -doctype[].structtype[].field[].type 10019 +doctype[].structtype[].field[].type 10013 doctype[].structtype[].field[].name "setfield3" doctype[].structtype[].field[].internalid 1180155772 -doctype[].structtype[].field[].type 10020 +doctype[].structtype[].field[].type 10019 doctype[].structtype[].field[].name "setfield4" doctype[].structtype[].field[].internalid 1254131631 -doctype[].structtype[].field[].type 10021 +doctype[].structtype[].field[].type 10020 doctype[].structtype[].field[].name "tagfield" doctype[].structtype[].field[].internalid 1653562069 -doctype[].structtype[].field[].type 10022 +doctype[].structtype[].field[].type 10013 doctype[].structtype[].field[].name "structfield" doctype[].structtype[].field[].internalid 486207386 -doctype[].structtype[].field[].type 10023 +doctype[].structtype[].field[].type 10021 doctype[].structtype[].field[].name "structarrayfield" doctype[].structtype[].field[].internalid 335048518 -doctype[].structtype[].field[].type 10024 +doctype[].structtype[].field[].type 10022 doctype[].structtype[].field[].name "stringmapfield" doctype[].structtype[].field[].internalid 117465687 -doctype[].structtype[].field[].type 10025 +doctype[].structtype[].field[].type 10023 doctype[].structtype[].field[].name "intmapfield" doctype[].structtype[].field[].internalid 121004462 -doctype[].structtype[].field[].type 10026 +doctype[].structtype[].field[].type 10024 doctype[].structtype[].field[].name "floatmapfield" doctype[].structtype[].field[].internalid 1239120925 -doctype[].structtype[].field[].type 10027 +doctype[].structtype[].field[].type 10025 doctype[].structtype[].field[].name "longmapfield" doctype[].structtype[].field[].internalid 477718745 -doctype[].structtype[].field[].type 10028 +doctype[].structtype[].field[].type 10026 doctype[].structtype[].field[].name "doublemapfield" doctype[].structtype[].field[].internalid 877047192 -doctype[].structtype[].field[].type 10029 +doctype[].structtype[].field[].type 10027 doctype[].structtype[].field[].name "arraymapfield" doctype[].structtype[].field[].internalid 1670805928 -doctype[].structtype[].field[].type 10030 +doctype[].structtype[].field[].type 10028 doctype[].structtype[].field[].name "arrarr" doctype[].structtype[].field[].internalid 1962567166 -doctype[].structtype[].field[].type 10032 +doctype[].structtype[].field[].type 10029 doctype[].structtype[].field[].name "maparr" doctype[].structtype[].field[].internalid 904375219 -doctype[].structtype[].field[].type 10035 +doctype[].structtype[].field[].type 10032 doctype[].structtype[].field[].name "complexarray" doctype[].structtype[].field[].internalid 795629533 -doctype[].structtype[].field[].type 10037 +doctype[].structtype[].field[].type 10033 doctype[].structtype[].field[].name "mystructfield" doctype[].structtype[].field[].internalid 1348513378 -doctype[].structtype[].field[].type 10041 +doctype[].structtype[].field[].type 10035 doctype[].structtype[].field[].name "mystructmap" doctype[].structtype[].field[].internalid 1511423250 -doctype[].structtype[].field[].type 10044 +doctype[].structtype[].field[].type 10037 doctype[].structtype[].field[].name "mystructarr" doctype[].structtype[].field[].internalid 595856991 -doctype[].structtype[].field[].type 10045 +doctype[].structtype[].field[].type 10038 doctype[].structtype[].field[].name "Folders" doctype[].structtype[].field[].internalid 34575524 -doctype[].structtype[].field[].type 10046 +doctype[].structtype[].field[].type 10039 doctype[].structtype[].field[].name "juletre" doctype[].structtype[].field[].internalid 1039981530 doctype[].structtype[].field[].type 10008 doctype[].structtype[].field[].name "album0" doctype[].structtype[].field[].internalid 764312262 -doctype[].structtype[].field[].type 10049 +doctype[].structtype[].field[].type 10013 doctype[].structtype[].field[].name "album1" doctype[].structtype[].field[].internalid 1967160809 -doctype[].structtype[].field[].type 10050 +doctype[].structtype[].field[].type 10013 doctype[].structtype[].field[].name "other" doctype[].structtype[].field[].internalid 2443357 doctype[].structtype[].field[].type 10008 diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/DuplicateStructTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/DuplicateStructTestCase.java index 8e221583bff..0695a3de922 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/DuplicateStructTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/DuplicateStructTestCase.java @@ -24,5 +24,4 @@ public class DuplicateStructTestCase extends AbstractExportingTestCase { .setExperimentalSdParsing(true), new TestableDeployLogger()); } - } -- cgit v1.2.3