From 90ece37a65996fb9c999007c4467f7c4d440e1c5 Mon Sep 17 00:00:00 2001 From: "Alex Razumov (from Dev Box)" Date: Mon, 5 Oct 2026 11:35:02 -0700 Subject: [PATCH] fix(disk): round-trip default scalar quantization Align the serialized spelling for SQ's default standard deviation with the parser's canonical SQ_N form. --- .../build/configuration/quantization_types.rs | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/diskann-disk/src/build/configuration/quantization_types.rs b/diskann-disk/src/build/configuration/quantization_types.rs index bafae97895..5fa691d646 100644 --- a/diskann-disk/src/build/configuration/quantization_types.rs +++ b/diskann-disk/src/build/configuration/quantization_types.rs @@ -211,13 +211,10 @@ impl Display for QuantizationType { QuantizationType::SQ { nbits, standard_deviation, - } => { - let standard_deviation = match standard_deviation { - Some(sd) => sd.into_inner().to_string(), - None => "None".to_string(), - }; - write!(f, "SQ_{}_{}", nbits, standard_deviation) - } + } => match standard_deviation { + Some(sd) => write!(f, "SQ_{}_{}", nbits, sd.into_inner()), + None => write!(f, "SQ_{}", nbits), + }, } } } @@ -281,7 +278,7 @@ mod tests { #[case(QuantizationType::Spherical(SphericalBits::One), "SPHERICAL_1")] #[case( QuantizationType::SQ { nbits: 8, standard_deviation: None }, - "SQ_8_None" + "SQ_8" )] #[case( QuantizationType::SQ { @@ -331,11 +328,13 @@ mod tests { #[test] fn test_roundtrip_serialization() { - // Note: SQ with None standard_deviation is not included as it formats to "SQ_N_None" - // which the parser doesn't accept - this is a known limitation of the current implementation let types = vec![ QuantizationType::FP, QuantizationType::PQ { num_chunks: 256 }, + QuantizationType::SQ { + nbits: 8, + standard_deviation: None, + }, QuantizationType::SQ { nbits: 8, standard_deviation: Some(Positive::new(1.5).unwrap()),