diff options
Diffstat (limited to 'indexinglanguage')
3 files changed, 61 insertions, 7 deletions
diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/FieldUpdateAdapter.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/FieldUpdateAdapter.java index 6c894dcdf4c..cffbd21f7c5 100644 --- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/FieldUpdateAdapter.java +++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/FieldUpdateAdapter.java @@ -1,13 +1,36 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.indexinglanguage; -import com.yahoo.document.*; -import com.yahoo.document.datatypes.*; -import com.yahoo.document.update.*; +import com.yahoo.document.DataType; +import com.yahoo.document.Document; +import com.yahoo.document.DocumentUpdate; +import com.yahoo.document.Field; +import com.yahoo.document.FieldPath; +import com.yahoo.document.datatypes.Array; +import com.yahoo.document.datatypes.FieldValue; +import com.yahoo.document.datatypes.IntegerFieldValue; +import com.yahoo.document.datatypes.MapFieldValue; +import com.yahoo.document.datatypes.StringFieldValue; +import com.yahoo.document.datatypes.StructuredFieldValue; +import com.yahoo.document.datatypes.WeightedSet; +import com.yahoo.document.update.AddValueUpdate; +import com.yahoo.document.update.ArithmeticValueUpdate; +import com.yahoo.document.update.AssignValueUpdate; +import com.yahoo.document.update.ClearValueUpdate; +import com.yahoo.document.update.FieldUpdate; +import com.yahoo.document.update.MapValueUpdate; +import com.yahoo.document.update.RemoveValueUpdate; +import com.yahoo.document.update.TensorAddUpdate; +import com.yahoo.document.update.TensorModifyUpdate; +import com.yahoo.document.update.TensorRemoveUpdate; +import com.yahoo.document.update.ValueUpdate; import com.yahoo.vespa.indexinglanguage.expressions.Expression; import com.yahoo.vespa.indexinglanguage.expressions.FieldValueAdapter; -import java.util.*; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Map; /** * @author Simon Thoresen Hult @@ -141,6 +164,8 @@ public class FieldUpdateAdapter implements UpdateAdapter { lst.add(upd); } else if (upd instanceof TensorAddUpdate) { lst.add(upd); + } else if (upd instanceof TensorRemoveUpdate) { + lst.add(upd); } else { throw new UnsupportedOperationException( "Value update type " + upd.getClass().getName() + " not supported."); diff --git a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/FieldUpdateHelper.java b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/FieldUpdateHelper.java index f38c3af05b8..e25af74333d 100644 --- a/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/FieldUpdateHelper.java +++ b/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/FieldUpdateHelper.java @@ -1,9 +1,28 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.indexinglanguage; -import com.yahoo.document.*; -import com.yahoo.document.datatypes.*; -import com.yahoo.document.update.*; +import com.yahoo.document.DataType; +import com.yahoo.document.Document; +import com.yahoo.document.DocumentId; +import com.yahoo.document.DocumentType; +import com.yahoo.document.Field; +import com.yahoo.document.StructuredDataType; +import com.yahoo.document.datatypes.Array; +import com.yahoo.document.datatypes.FieldValue; +import com.yahoo.document.datatypes.IntegerFieldValue; +import com.yahoo.document.datatypes.MapFieldValue; +import com.yahoo.document.datatypes.StructuredFieldValue; +import com.yahoo.document.datatypes.WeightedSet; +import com.yahoo.document.update.AddValueUpdate; +import com.yahoo.document.update.ArithmeticValueUpdate; +import com.yahoo.document.update.AssignValueUpdate; +import com.yahoo.document.update.ClearValueUpdate; +import com.yahoo.document.update.MapValueUpdate; +import com.yahoo.document.update.RemoveValueUpdate; +import com.yahoo.document.update.TensorAddUpdate; +import com.yahoo.document.update.TensorModifyUpdate; +import com.yahoo.document.update.TensorRemoveUpdate; +import com.yahoo.document.update.ValueUpdate; /** * @author Simon Thoresen Hult @@ -94,6 +113,8 @@ public abstract class FieldUpdateHelper { return val; } else if (upd instanceof TensorAddUpdate) { return val; + } else if (upd instanceof TensorRemoveUpdate) { + return val; } throw new UnsupportedOperationException("Value update type " + upd.getClass().getName() + " not supported."); } diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/DocumentToValueUpdateTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/DocumentToValueUpdateTestCase.java index b9e9e54bc22..5ac4227aa14 100644 --- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/DocumentToValueUpdateTestCase.java +++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/DocumentToValueUpdateTestCase.java @@ -399,4 +399,12 @@ public class DocumentToValueUpdateTestCase { f.assertTensorUpdatePassesThrough(addUpdate, doc); } + @Test + public void tensor_remove_update_passes_through_unmodified() { + TensorFixture f = new TensorFixture(); + TensorRemoveUpdate removeUpdate = new TensorRemoveUpdate(new TensorFieldValue(Tensor.from("tensor(x{})", "{{x:a}:1}"))); + Document doc = f.assertTensorUpdateNotApplied(removeUpdate); + f.assertTensorUpdatePassesThrough(removeUpdate, doc); + } + } |