aboutsummaryrefslogtreecommitdiffstats
path: root/document/src/main/java/com/yahoo/document/serialization
diff options
context:
space:
mode:
authorGeir Storli <geirst@verizonmedia.com>2020-11-11 17:06:23 +0000
committerGeir Storli <geirst@verizonmedia.com>2020-11-17 12:57:49 +0000
commit4cd2c6a1d4d2ab7337678931271a815b535ce518 (patch)
treeede014280efb581bc841c7ab7702c0a7b9e028a6 /document/src/main/java/com/yahoo/document/serialization
parente4c14623ad4ecbe6337a49d2176621c528bf7c22 (diff)
Extend tensor remove update to support not fully specified addresses and update JSON parser.
Previously, all the sparse dimensions of the sparse or mixed tensor type (to remove from) had to be specified in the addresses to remove.
Diffstat (limited to 'document/src/main/java/com/yahoo/document/serialization')
-rw-r--r--document/src/main/java/com/yahoo/document/serialization/VespaDocumentDeserializer6.java2
-rw-r--r--document/src/main/java/com/yahoo/document/serialization/VespaDocumentDeserializerHead.java8
2 files changed, 6 insertions, 4 deletions
diff --git a/document/src/main/java/com/yahoo/document/serialization/VespaDocumentDeserializer6.java b/document/src/main/java/com/yahoo/document/serialization/VespaDocumentDeserializer6.java
index cac05fb7879..92b3b566b85 100644
--- a/document/src/main/java/com/yahoo/document/serialization/VespaDocumentDeserializer6.java
+++ b/document/src/main/java/com/yahoo/document/serialization/VespaDocumentDeserializer6.java
@@ -243,7 +243,7 @@ public class VespaDocumentDeserializer6 extends BufferSerializer implements Docu
int encodedTensorLength = buf.getInt1_4Bytes();
if (encodedTensorLength > 0) {
byte[] encodedTensor = getBytes(null, encodedTensorLength);
- value.assign(TypedBinaryFormat.decode(Optional.of(value.getDataType().getTensorType()),
+ value.assign(TypedBinaryFormat.decode(value.getTensorType(),
GrowableByteBuffer.wrap(encodedTensor)));
} else {
value.clear();
diff --git a/document/src/main/java/com/yahoo/document/serialization/VespaDocumentDeserializerHead.java b/document/src/main/java/com/yahoo/document/serialization/VespaDocumentDeserializerHead.java
index 58c50f047f9..e7f1525ff81 100644
--- a/document/src/main/java/com/yahoo/document/serialization/VespaDocumentDeserializerHead.java
+++ b/document/src/main/java/com/yahoo/document/serialization/VespaDocumentDeserializerHead.java
@@ -61,10 +61,12 @@ public class VespaDocumentDeserializerHead extends VespaDocumentDeserializer6 {
}
TensorDataType tensorDataType = (TensorDataType)type;
TensorType tensorType = tensorDataType.getTensorType();
- TensorType convertedType = TensorRemoveUpdate.extractSparseDimensions(tensorType);
- TensorFieldValue tensor = new TensorFieldValue(convertedType);
+ TensorFieldValue tensor = new TensorFieldValue();
tensor.deserialize(this);
- return new TensorRemoveUpdate(tensor);
+ var result = new TensorRemoveUpdate(tensor);
+ result.verifyCompatibleType(tensorType);
+ return result;
}
+
}