diff --git a/milli/src/documents/builder.rs b/milli/src/documents/builder.rs index f95fa9190..2860c4b86 100644 --- a/milli/src/documents/builder.rs +++ b/milli/src/documents/builder.rs @@ -118,16 +118,26 @@ impl DocumentBatchBuilder { for (value, (fid, ty)) in record.into_iter().zip(headers.iter()) { let value = match ty { AllowedType::Number => { - value.parse::().map(Value::from).map_err(|error| { - Error::ParseFloat { - error, - // +1 for the header offset. - line: i + 1, - value: value.to_string(), - } - })? + if value.trim().is_empty() { + Value::Null + } else { + value.trim().parse::().map(Value::from).map_err(|error| { + Error::ParseFloat { + error, + // +1 for the header offset. + line: i + 1, + value: value.to_string(), + } + })? + } + } + AllowedType::String => { + if value.is_empty() { + Value::Null + } else { + Value::String(value.to_string()) + } } - AllowedType::String => Value::String(value.to_string()), }; this.value_buffer.clear();