diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2024-05-18 19:50:09 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2024-05-18 19:50:09 +0200 |
commit | 1f7b47e86801aba4aa0570d5e5444c722351ac56 (patch) | |
tree | 12291f2291ce2d7706e93830820759bfd6af5224 /config-model/src/main/java | |
parent | 8d43cf96c49c1d0c3ef6b64a937a97003f60cfc2 (diff) |
- Carry datatype explicit instead of implicit via field inheritance.
Diffstat (limited to 'config-model/src/main/java')
4 files changed, 19 insertions, 18 deletions
diff --git a/config-model/src/main/java/com/yahoo/schema/processing/Processor.java b/config-model/src/main/java/com/yahoo/schema/processing/Processor.java index dd36bbb3b61..8b0446364ea 100644 --- a/config-model/src/main/java/com/yahoo/schema/processing/Processor.java +++ b/config-model/src/main/java/com/yahoo/schema/processing/Processor.java @@ -13,6 +13,7 @@ import com.yahoo.schema.document.RankType; import com.yahoo.schema.document.SDField; import com.yahoo.schema.document.Stemming; import com.yahoo.vespa.model.container.search.QueryProfiles; +import com.yahoo.vespa.objects.FieldBase; import java.util.Iterator; import java.util.List; @@ -110,8 +111,8 @@ public abstract class Processor { List<RankProfile.RankSetting> someRankSettings = new java.util.ArrayList<>(); for (RankProfile profile : rankProfileRegistry.rankProfilesOf(schema)) { - for (Iterator j = profile.declaredRankSettingIterator(); j.hasNext(); ) { - RankProfile.RankSetting setting = (RankProfile.RankSetting)j.next(); + for (Iterator<RankProfile.RankSetting> j = profile.declaredRankSettingIterator(); j.hasNext(); ) { + RankProfile.RankSetting setting = j.next(); if (setting.getType().equals(type)) { someRankSettings.add(setting); } @@ -128,7 +129,7 @@ public abstract class Processor { return new IllegalArgumentException(formatError(schemaName, fieldName, msg)); } - protected RuntimeException newProcessException(Schema schema, Field field, String msg) { + protected RuntimeException newProcessException(Schema schema, FieldBase field, String msg) { return newProcessException(schema.getName(), field.getName(), msg); } diff --git a/config-model/src/main/java/com/yahoo/schema/processing/TypedTransformProvider.java b/config-model/src/main/java/com/yahoo/schema/processing/TypedTransformProvider.java index 3d4934ed841..8be7be02135 100644 --- a/config-model/src/main/java/com/yahoo/schema/processing/TypedTransformProvider.java +++ b/config-model/src/main/java/com/yahoo/schema/processing/TypedTransformProvider.java @@ -5,6 +5,7 @@ import com.yahoo.document.DataType; import com.yahoo.document.Field; import com.yahoo.schema.Schema; import com.yahoo.schema.document.Attribute; +import com.yahoo.vespa.documentmodel.SummaryField; import com.yahoo.vespa.indexinglanguage.ValueTransformProvider; import com.yahoo.vespa.indexinglanguage.expressions.AttributeExpression; import com.yahoo.vespa.indexinglanguage.expressions.Expression; @@ -46,7 +47,7 @@ public abstract class TypedTransformProvider extends ValueTransformProvider { fieldType = field.getDataType(); } else if (exp instanceof SummaryExpression) { - Field field = schema.getSummaryField(fieldName); + SummaryField field = schema.getSummaryField(fieldName); if (field == null) { // Use document field if summary field is not found var sdField = schema.getConcreteField(fieldName); diff --git a/config-model/src/main/java/com/yahoo/vespa/documentmodel/DocumentSummary.java b/config-model/src/main/java/com/yahoo/vespa/documentmodel/DocumentSummary.java index 32807db8405..10de46ae6d8 100644 --- a/config-model/src/main/java/com/yahoo/vespa/documentmodel/DocumentSummary.java +++ b/config-model/src/main/java/com/yahoo/vespa/documentmodel/DocumentSummary.java @@ -2,18 +2,13 @@ package com.yahoo.vespa.documentmodel; import com.yahoo.config.application.api.DeployLogger; -import com.yahoo.schema.RankProfile; import com.yahoo.schema.Schema; -import com.yahoo.searchlib.rankingexpression.Reference; import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.logging.Level; /** @@ -25,7 +20,7 @@ public class DocumentSummary extends FieldView { private boolean fromDisk = false; private boolean omitSummaryFeatures = false; - private List<String> inherited = new ArrayList<>(); + private final List<String> inherited = new ArrayList<>(); private final Schema owner; @@ -115,7 +110,7 @@ public class DocumentSummary extends FieldView { /** Returns the parent of this, if any */ public List<DocumentSummary> inherited() { - return inherited.stream().map(name -> owner.getSummary(name)).toList(); + return inherited.stream().map(owner::getSummary).toList(); } @Override diff --git a/config-model/src/main/java/com/yahoo/vespa/documentmodel/SummaryField.java b/config-model/src/main/java/com/yahoo/vespa/documentmodel/SummaryField.java index 785b45d8def..e529779735f 100644 --- a/config-model/src/main/java/com/yahoo/vespa/documentmodel/SummaryField.java +++ b/config-model/src/main/java/com/yahoo/vespa/documentmodel/SummaryField.java @@ -3,6 +3,7 @@ package com.yahoo.vespa.documentmodel; import com.yahoo.document.DataType; import com.yahoo.document.Field; +import com.yahoo.vespa.objects.FieldBase; import java.io.Serializable; import java.util.Collection; @@ -18,7 +19,7 @@ import static com.yahoo.text.Lowercase.toLowerCase; * * @author bratseth */ -public class SummaryField extends Field implements Cloneable { +public class SummaryField extends FieldBase implements Cloneable { /** A source (field name). */ public static class Source implements Serializable { @@ -55,6 +56,7 @@ public class SummaryField extends Field implements Cloneable { /** The command used per field in vsmsummary */ private VsmCommand vsmCommand = VsmCommand.NONE; + private DataType dataType; /** * The data sources for this output summary field, in prioritized order @@ -86,8 +88,9 @@ public class SummaryField extends Field implements Cloneable { } public SummaryField(String name, DataType type, SummaryTransform transform) { - super(name, type); + super(name); this.transform=transform; + this.dataType = type; } public static SummaryField createWithUnresolvedType(String name) { @@ -108,6 +111,10 @@ public class SummaryField extends Field implements Cloneable { public boolean hasUnresolvedType() { return unresolvedType; } + public DataType getDataType() { + return dataType; + } + public void setTransform(SummaryTransform transform) { this.transform = transform; if (SummaryTransform.DYNAMICTEASER.equals(transform) || SummaryTransform.BOLDED.equals(transform)) { @@ -196,7 +203,7 @@ public class SummaryField extends Field implements Cloneable { if (merge.getTransform() != getTransform()) throw new IllegalArgumentException(merge + " conflicts with " + this + ": different transforms"); - if (!merge.getDataType().equals(getDataType())) + if (!merge.dataType.equals(dataType)) throw new IllegalArgumentException(merge + " conflicts with " + this + ": different types"); setImplicit(false); @@ -252,7 +259,7 @@ public class SummaryField extends Field implements Cloneable { /** Returns a string which aids locating this field in the source search definition */ public String toLocateString() { - return "summary " + getName() + " type " + toLowerCase(getDataType().getName()) + " in " + getDestinationString(); + return "summary " + getName() + " type " + toLowerCase(dataType.getName()) + " in " + getDestinationString(); } @Override @@ -292,9 +299,6 @@ public class SummaryField extends Field implements Cloneable { public void setResolvedDataType(DataType type) { this.dataType = type; - if (!hasForcedId()) { - this.fieldId = calculateIdV7(null); - } unresolvedType = false; } |