diff --git a/src/query/expression/src/utils/display.rs b/src/query/expression/src/utils/display.rs index ac0b78fe23284..43498191c1764 100755 --- a/src/query/expression/src/utils/display.rs +++ b/src/query/expression/src/utils/display.rs @@ -781,7 +781,7 @@ fn display_decimal_256(num: i256, scale: u8) -> String { buf, "{}.{:0>width$}", num / pow_scale, - num % pow_scale, + num % pow_scale.abs(), width = scale as usize ) .unwrap(); diff --git a/src/query/storages/common/index/src/index.rs b/src/query/storages/common/index/src/index.rs index ac8590a7cc13e..42656a87bed62 100644 --- a/src/query/storages/common/index/src/index.rs +++ b/src/query/storages/common/index/src/index.rs @@ -20,7 +20,11 @@ pub trait Index { let inner_type = data_type.remove_nullable(); matches!( inner_type, - DataType::Number(_) | DataType::Date | DataType::Timestamp | DataType::String + DataType::Number(_) + | DataType::Date + | DataType::Timestamp + | DataType::String + | DataType::Decimal(_) ) } } diff --git a/tests/sqllogictests/suites/base/11_data_type/11_0006_data_type_decimal b/tests/sqllogictests/suites/base/11_data_type/11_0006_data_type_decimal index 71d9cc1e744f8..eca65a10c5141 100644 --- a/tests/sqllogictests/suites/base/11_data_type/11_0006_data_type_decimal +++ b/tests/sqllogictests/suites/base/11_data_type/11_0006_data_type_decimal @@ -330,24 +330,27 @@ statement ok insert into t(c1) select CAST(0 AS DECIMAL(6, 2)) query I -select * from t order by c1 desc; +select * from t order by c1 desc ---- 2.34 0.00 -2.34 query I -select * from t order by c1 asc; +select * from t order by c1 asc ---- -2.34 0.00 2.34 -statement error 1067 +query I select * from t order by c1 asc limit 0,2 +---- +-2.34 +0.00 query I -select * from t order by c1 asc limit 1,2; +select * from t order by c1 asc limit 1,2 ---- 0.00 2.34