From 1ecd3bb8227b1d389e8f71d2d7140ee6c54fac8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Lecrenier?= Date: Wed, 21 Sep 2022 11:02:30 +0200 Subject: [PATCH] Fix bug in FieldDocIdFacetCodec --- milli/src/heed_codec/facet/field_doc_id_facet_codec.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/milli/src/heed_codec/facet/field_doc_id_facet_codec.rs b/milli/src/heed_codec/facet/field_doc_id_facet_codec.rs index 4e18a0145..cc9919ad2 100644 --- a/milli/src/heed_codec/facet/field_doc_id_facet_codec.rs +++ b/milli/src/heed_codec/facet/field_doc_id_facet_codec.rs @@ -20,7 +20,7 @@ where let (document_id_bytes, bytes) = try_split_array_at(bytes)?; let document_id = u32::from_be_bytes(document_id_bytes); - let value = C::bytes_decode(&bytes[8..])?; + let value = C::bytes_decode(bytes)?; Some((field_id, document_id, value)) } @@ -33,10 +33,11 @@ where type EItem = (FieldId, DocumentId, C::EItem); fn bytes_encode((field_id, document_id, value): &'a Self::EItem) -> Option> { - let mut bytes = Vec::with_capacity(2 + 4 + 8 + 8); - bytes.extend_from_slice(&field_id.to_be_bytes()); - bytes.extend_from_slice(&document_id.to_be_bytes()); + let mut bytes = Vec::with_capacity(32); + bytes.extend_from_slice(&field_id.to_be_bytes()); // 2 bytes + bytes.extend_from_slice(&document_id.to_be_bytes()); // 4 bytes let value_bytes = C::bytes_encode(value)?; + // variable length, if f64 -> 16 bytes, if string -> large, potentially bytes.extend_from_slice(&value_bytes); Some(Cow::Owned(bytes)) }