number can be converted to the string as a backup for server to validate it

This commit is contained in:
Priec
2026-08-17 18:10:23 +02:00
parent 76f475064e
commit d3b2f14fd2

View File

@@ -112,16 +112,10 @@ pub(crate) fn csv_value(locale: Locale, raw: &str, data_type: &str) -> Result<Va
normalized.as_str(), normalized.as_str(),
"INTEGER" | "INT" | "INT4" | "INT2" | "BIGINT" | "INT8" "INTEGER" | "INT" | "INT4" | "INT2" | "BIGINT" | "INT8"
) { ) {
let integer = raw match raw.parse::<i64>() {
.parse::<i64>() Ok(integer) => Kind::NumberValue(integer as f64),
.map_err(|_| { Err(_) => Kind::StringValue(raw.to_string()),
tr!( }
locale,
"import-err-bad-integer",
"value" => raw.to_string(),
)
})?;
Kind::NumberValue(integer as f64)
} else { } else {
Kind::StringValue(raw.to_string()) Kind::StringValue(raw.to_string())
}; };
@@ -188,5 +182,9 @@ mod tests {
); );
} }
#[test]
fn integer_columns_pass_non_numeric_text_to_the_backend() {
let value = csv_value(Locale::English, "KUPE SRO", "BIGINT").unwrap();
assert_eq!(value.kind, Some(Kind::StringValue("KUPE SRO".to_string())));
}
} }