From ae8553825457cb99de053f05fe99f9ee474151da Mon Sep 17 00:00:00 2001 From: CookiePieWw Date: Sat, 31 Aug 2024 16:41:50 +0800 Subject: [PATCH] test: fix unit tests --- src/datatypes/src/schema/column_schema.rs | 11 ++++++++--- src/datatypes/src/value.rs | 19 +------------------ 2 files changed, 9 insertions(+), 21 deletions(-) diff --git a/src/datatypes/src/schema/column_schema.rs b/src/datatypes/src/schema/column_schema.rs index cdabb6954b5d..e06afc583804 100644 --- a/src/datatypes/src/schema/column_schema.rs +++ b/src/datatypes/src/schema/column_schema.rs @@ -549,14 +549,19 @@ mod tests { assert!(column_schema.metadata.is_empty()); let field = Field::new("test", ArrowDataType::Binary, true); - let field = - field.with_metadata(Metadata::from([(TYPE_KEY.to_string(), "Json".to_string())])); + let field = field.with_metadata(Metadata::from([( + TYPE_KEY.to_string(), + ConcreteDataType::json_datatype().name(), + )])); let column_schema = ColumnSchema::try_from(&field).unwrap(); assert_eq!("test", column_schema.name); assert_eq!(ConcreteDataType::json_datatype(), column_schema.data_type); assert!(column_schema.is_nullable); assert!(!column_schema.is_time_index); assert!(column_schema.default_constraint.is_none()); - assert!(column_schema.metadata.is_empty()); + assert_eq!( + column_schema.metadata.get(TYPE_KEY).unwrap(), + &ConcreteDataType::json_datatype().name() + ); } } diff --git a/src/datatypes/src/value.rs b/src/datatypes/src/value.rs index 5125e2712981..53a3a42d2938 100644 --- a/src/datatypes/src/value.rs +++ b/src/datatypes/src/value.rs @@ -321,7 +321,7 @@ impl Value { let value_type_id = self.logical_type_id(); let output_type_id = output_type.logical_type_id(); ensure!( - output_type_id == value_type_id || self.is_null(), + output_type_id == value_type_id || self.is_null() || (output_type_id == LogicalTypeId::Json && value_type_id == LogicalTypeId::Binary), error::ToScalarValueSnafu { reason: format!( "expect value to return output_type {output_type_id:?}, actual: {value_type_id:?}", @@ -1824,14 +1824,6 @@ mod tests { &ConcreteDataType::decimal128_datatype(38, 10), &Value::Decimal128(Decimal128::new(1, 38, 10)), ); - - let jsonb_value = jsonb::parse_value(r#"{"key": "value"}"#.as_bytes()) - .unwrap() - .to_vec(); - check_type_and_value( - &ConcreteDataType::json_datatype(), - &Value::Binary(jsonb_value.into()), - ); } #[test] @@ -1945,15 +1937,6 @@ mod tests { datatype: ConcreteDataType::int32_datatype(), })) ); - - let jsonb_value = - jsonb::parse_value(r#"{"items":[{"Int32":123}],"datatype":{"Int32":{}}}"#.as_bytes()) - .unwrap(); - let json_value: serde_json::Value = jsonb_value.clone().into(); - assert_eq!( - json_value, - to_json(Value::Binary(jsonb_value.to_vec().into())) - ); } #[test]