aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/vespa/model/application
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2021-05-03 08:13:51 +0200
committerJon Marius Venstad <venstad@gmail.com>2021-05-03 08:13:51 +0200
commit45bc928423548c93e52000725df9a56971e3f8a6 (patch)
tree9011dc94a0584fc331d76eb865dbaeada2d0f753 /config-model/src/main/java/com/yahoo/vespa/model/application
parentc5df332d4c7519565f45ce9301771c3662eda128 (diff)
Revert "Merge pull request #17692 from vespa-engine/revert-17670-jonmv/reindexing-when-new-extra-field-is-added"
This reverts commit 320422464e326adcbe67891f0ace8d702e4fd18d, reversing changes made to 23e6772cce9f39ae58b3ccd592f1ef69406d0b60.
Diffstat (limited to 'config-model/src/main/java/com/yahoo/vespa/model/application')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/VespaReindexAction.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/search/IndexingScriptChangeValidator.java11
2 files changed, 9 insertions, 4 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/VespaReindexAction.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/VespaReindexAction.java
index 8b4060e7d19..c2d23844687 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/VespaReindexAction.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/VespaReindexAction.java
@@ -46,7 +46,7 @@ public class VespaReindexAction extends VespaConfigChangeAction implements Confi
return new VespaReindexAction(clusterId(), validationId, newMessage, newServices, documentType);
}
- @Override public Optional<ValidationId> validationId() { return Optional.of(validationId); }
+ @Override public Optional<ValidationId> validationId() { return Optional.ofNullable(validationId); }
@Override public String getDocumentType() { return documentType; }
@Override public boolean ignoreForInternalRedeploy() { return false; }
@Override public String toString() { return super.toString() + ", documentType='" + documentType + "'"; }
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/search/IndexingScriptChangeValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/search/IndexingScriptChangeValidator.java
index 91e370211f1..20872bcf326 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/search/IndexingScriptChangeValidator.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/search/IndexingScriptChangeValidator.java
@@ -2,7 +2,6 @@
package com.yahoo.vespa.model.application.validation.change.search;
import com.yahoo.config.application.api.ValidationId;
-import com.yahoo.config.application.api.ValidationOverrides;
import com.yahoo.config.provision.ClusterSpec;
import com.yahoo.searchdefinition.Search;
import com.yahoo.searchdefinition.document.ImmutableSDField;
@@ -13,8 +12,8 @@ import com.yahoo.vespa.indexinglanguage.expressions.ScriptExpression;
import com.yahoo.vespa.model.application.validation.change.VespaConfigChangeAction;
import com.yahoo.vespa.model.application.validation.change.VespaReindexAction;
-import java.time.Instant;
import java.util.ArrayList;
+import java.util.LinkedHashSet;
import java.util.List;
import java.util.Optional;
@@ -37,12 +36,18 @@ public class IndexingScriptChangeValidator {
public List<VespaConfigChangeAction> validate() {
List<VespaConfigChangeAction> result = new ArrayList<>();
- for (ImmutableSDField nextField : nextSearch.allConcreteFields()) {
+ for (ImmutableSDField nextField : new LinkedHashSet<>(nextSearch.allConcreteFields())) {
String fieldName = nextField.getName();
ImmutableSDField currentField = currentSearch.getConcreteField(fieldName);
if (currentField != null) {
validateScripts(currentField, nextField).ifPresent(r -> result.add(r));
}
+ else if (nextField.isExtraField()) {
+ result.add(VespaReindexAction.of(id,
+ null,
+ "Non-document field '" + nextField.getName() +
+ "' added; this may be populated by reindexing"));
+ }
}
return result;
}