fix: schema inference issue (#3128)

This commit is contained in:
Ashish Kolhe
2024-03-29 17:29:53 +05:30
committed by GitHub
parent 943873b071
commit 8a65ade1a2
2 changed files with 27 additions and 0 deletions
+1
View File
@@ -163,6 +163,7 @@ fn convert_data_type(
| (DataType::Int64, DataType::Utf8) => {
fields.insert(key.to_string(), Field::new(key, data_type, true));
}
(DataType::Int64, DataType::Boolean) | (DataType::UInt64, DataType::Boolean) => {}
(DataType::UInt64, DataType::Float64) | (DataType::UInt64, DataType::Utf8) => {
fields.insert(key.to_string(), Field::new(key, data_type, true));
}
+26
View File
@@ -176,6 +176,13 @@ pub fn cast_to_schema_v1(
if val.is_i64() {
continue;
}
if val.is_boolean() {
value.insert(
field_name_str,
Value::Number(bool_to_serde_json_number(val.as_bool().unwrap())),
);
continue;
}
let val = get_string_value(val);
match val.parse::<i64>() {
Ok(val) => {
@@ -188,6 +195,13 @@ pub fn cast_to_schema_v1(
if val.is_u64() {
continue;
}
if val.is_boolean() {
value.insert(
field_name_str,
Value::Number(bool_to_serde_json_number(val.as_bool().unwrap())),
);
continue;
}
let val = get_string_value(val);
match val.parse::<u64>() {
Ok(val) => {
@@ -200,6 +214,13 @@ pub fn cast_to_schema_v1(
if val.is_f64() {
continue;
}
if val.is_boolean() {
value.insert(
field_name_str,
Value::Number(bool_to_serde_json_number(val.as_bool().unwrap())),
);
continue;
}
let val = get_string_value(val);
match val.parse::<f64>() {
Ok(val) => {
@@ -399,6 +420,11 @@ async fn add_record(
Ok(())
}
fn bool_to_serde_json_number(value: bool) -> serde_json::Number {
let num = value as i64;
serde_json::Number::from(num)
}
struct StreamMeta<'a> {
org_id: String,
stream_name: String,