aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2024-05-18 19:50:09 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2024-05-18 19:50:09 +0200
commit1f7b47e86801aba4aa0570d5e5444c722351ac56 (patch)
tree12291f2291ce2d7706e93830820759bfd6af5224
parent8d43cf96c49c1d0c3ef6b64a937a97003f60cfc2 (diff)
- Carry datatype explicit instead of implicit via field inheritance.
-rw-r--r--config-model/src/main/java/com/yahoo/schema/processing/Processor.java7
-rw-r--r--config-model/src/main/java/com/yahoo/schema/processing/TypedTransformProvider.java3
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/documentmodel/DocumentSummary.java9
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/documentmodel/SummaryField.java18
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;
}