From 7e2788fc7ed02aae39d680d125d55da4e62a87e1 Mon Sep 17 00:00:00 2001 From: sundy-li <543950155@qq.com> Date: Thu, 12 Sep 2024 11:13:27 +0800 Subject: [PATCH] update --- src/query/expression/src/utils/serialize.rs | 20 +++++++++---------- .../functions/src/scalars/decimal/cast.rs | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/query/expression/src/utils/serialize.rs b/src/query/expression/src/utils/serialize.rs index 8d01ad1bcac5..7307ecc58bb8 100644 --- a/src/query/expression/src/utils/serialize.rs +++ b/src/query/expression/src/utils/serialize.rs @@ -13,11 +13,10 @@ // limitations under the License. use std::cmp::Ordering; +use std::result::Result; use chrono::Datelike; use chrono::NaiveDate; -use databend_common_exception::ErrorCode; -use databend_common_exception::Result; use crate::types::decimal::Decimal; use crate::types::decimal::DecimalSize; @@ -29,12 +28,13 @@ pub fn uniform_date(date: NaiveDate) -> i32 { date.num_days_from_ce() - EPOCH_DAYS_FROM_CE } +// Used in function, so we don't want to return ErrorCode with backtrace pub fn read_decimal_with_size( buf: &[u8], size: DecimalSize, exact: bool, rounding_mode: bool, -) -> Result<(T, usize)> { +) -> Result<(T, usize), String> { // Read one more digit for round let (n, d, e, n_read) = read_decimal::(buf, (size.precision + 1) as u32, size.scale as _, exact)?; @@ -91,7 +91,7 @@ pub fn read_decimal( max_digits: u32, mut max_scales: u32, exact: bool, -) -> Result<(T, u8, i32, usize)> { +) -> Result<(T, u8, i32, usize), String> { if buf.is_empty() { return Err(decimal_parse_error("empty")); } @@ -302,7 +302,7 @@ pub fn read_decimal( pub fn read_decimal_from_json( value: &serde_json::Value, size: DecimalSize, -) -> Result { +) -> Result { match value { serde_json::Value::Number(n) => { if n.is_i64() { @@ -323,14 +323,14 @@ pub fn read_decimal_from_json( let (n, _) = read_decimal_with_size::(s.as_bytes(), size, true, true)?; Ok(n) } - _ => Err(ErrorCode::from("Incorrect json value for decimal")), + _ => Err("Incorrect json value for decimal".to_string()), } } -fn decimal_parse_error(msg: &str) -> ErrorCode { - ErrorCode::BadArguments(format!("bad decimal literal: {msg}")) +fn decimal_parse_error(msg: &str) -> String { + format!("bad decimal literal: {msg}") } -fn decimal_overflow_error() -> ErrorCode { - ErrorCode::Overflow("Decimal overflow") +fn decimal_overflow_error() -> String { + "Decimal overflow".to_string() } diff --git a/src/query/functions/src/scalars/decimal/cast.rs b/src/query/functions/src/scalars/decimal/cast.rs index dd4494bc0165..3547e2611d55 100644 --- a/src/query/functions/src/scalars/decimal/cast.rs +++ b/src/query/functions/src/scalars/decimal/cast.rs @@ -475,7 +475,7 @@ where { Ok((d, _)) => d, Err(e) => { - ctx.set_error(builder.len(), e.message()); + ctx.set_error(builder.len(), e); T::zero() } };