diff options
author | Geir Storli <geirst@verizonmedia.com> | 2020-11-11 17:06:23 +0000 |
---|---|---|
committer | Geir Storli <geirst@verizonmedia.com> | 2020-11-17 12:57:49 +0000 |
commit | 4cd2c6a1d4d2ab7337678931271a815b535ce518 (patch) | |
tree | ede014280efb581bc841c7ab7702c0a7b9e028a6 /document/src/main/java/com/yahoo/document/serialization | |
parent | e4c14623ad4ecbe6337a49d2176621c528bf7c22 (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')
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; } + } |