This is an automated email from the ASF dual-hosted git repository. yiguolei pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push: new 37ed7ad6e15 [fix](delete) fix the error message for valid decimal data (#36802) 37ed7ad6e15 is described below commit 37ed7ad6e15e1246849ca6442a34a1eb41a38332 Author: lw112 <131352377+felixw...@users.noreply.github.com> AuthorDate: Fri Jul 12 09:33:59 2024 +0800 [fix](delete) fix the error message for valid decimal data (#36802) ## Proposed changes Issue Number: close #36775 <!--Describe your changes.--> --- be/src/olap/utils.cpp | 5 ++-- regression-test/data/delete_p0/test_delete.out | 2 ++ .../suites/delete_p0/test_delete.groovy | 28 ++++++++++++++++++++++ 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/be/src/olap/utils.cpp b/be/src/olap/utils.cpp index 49c1d53ae35..019a2f606ce 100644 --- a/be/src/olap/utils.cpp +++ b/be/src/olap/utils.cpp @@ -546,7 +546,8 @@ bool valid_decimal(const std::string& value_str, const uint32_t precision, const } size_t number_length = value_str.size(); - if (value_str[0] == '-') { + bool is_negative = value_str[0] == '-'; + if (is_negative) { --number_length; } @@ -557,7 +558,7 @@ bool valid_decimal(const std::string& value_str, const uint32_t precision, const integer_len = number_length; fractional_len = 0; } else { - integer_len = point_pos; + integer_len = point_pos - (is_negative ? 1 : 0); fractional_len = number_length - point_pos - 1; } diff --git a/regression-test/data/delete_p0/test_delete.out b/regression-test/data/delete_p0/test_delete.out index becddb7d97b..33c6b773f9b 100644 --- a/regression-test/data/delete_p0/test_delete.out +++ b/regression-test/data/delete_p0/test_delete.out @@ -148,3 +148,5 @@ ccc ccc 39 40 42 43 131.200 s o 2023-02-10 2023-02-10T00:01:02 false 22236.106 nn 43 44 46 47 135.200 g t 2023-02-14 2023-02-14T00:01:02 false 22240.106 rr +-- !check_decimal -- +true -1.0 10 \ No newline at end of file diff --git a/regression-test/suites/delete_p0/test_delete.groovy b/regression-test/suites/delete_p0/test_delete.groovy index 62553571357..a73755d2ff5 100644 --- a/regression-test/suites/delete_p0/test_delete.groovy +++ b/regression-test/suites/delete_p0/test_delete.groovy @@ -517,4 +517,32 @@ suite("test_delete") { sql "delete from table_bitmap where user_id is null" exception "Can not apply delete condition to column type: BITMAP" } + + // delete decimal + sql "drop table if exists table_decimal" + sql """ + CREATE TABLE table_decimal ( + `k1` BOOLEAN NOT NULL, + `k2` DECIMAL(17, 1) NOT NULL, + `k3` INT NOT NULL + ) ENGINE=OLAP + DUPLICATE KEY(`k1`,`k2`,`k3`) + DISTRIBUTED BY HASH(`k1`,`k2`,`k3`) BUCKETS 4 + PROPERTIES ( + "replication_num" = "1", + "disable_auto_compaction" = "false" + ); + """ + sql """ + insert into table_decimal values + (false, '-9999782574499444.2', -20), + (true, '-1', 10); + """ + + sql """ + delete from table_decimal where k1 = false and k2 = '-9999782574499444.2' and k3 = '-20'; + """ + qt_check_decimal """ + select * from table_decimal; + """ } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org