【详述】一个表里有两个类型为decimal(38,18)的字段,select相乘的结果为null
【StarRocks版本】例如:2.1.6
【复现sql】
CREATE TABLE tmp.
issue_tmp
(
id
varchar(1048576) NULL COMMENT “”,
left_value
decimal128(38, 18) NULL COMMENT “”,
right_value
decimal128(38, 18) NULL COMMENT “”
) ENGINE=OLAP
DUPLICATE KEY(id
)
COMMENT “OLAP”
DISTRIBUTED BY HASH(id
) BUCKETS 10
PROPERTIES (
“replication_num” = “1”,
“in_memory” = “false”,
“storage_format” = “DEFAULT”,
“enable_persistent_index” = “false”
);INSERT INTO tmp.issue_tmp (id, left_value, right_value) VALUES (‘te12312312344’, 1104.061225000000000000, 3.141592600000000000);
INSERT INTO tmp.issue_tmp (id, left_value, right_value) VALUES (‘test1’, 1104.061225000000000000, 2.000000000000000000);
INSERT INTO tmp.issue_tmp (id, left_value, right_value) VALUES (‘test1’, 1104.061225000000000000, 2.000000000000000000);
INSERT INTO tmp.issue_tmp (id, left_value, right_value) VALUES (‘test1’, 1104.061225000000000000, 2.000000000000000000);
INSERT INTO tmp.issue_tmp (id, left_value, right_value) VALUES (‘te12312312345’, 1104.061225000000000000, 3.141592600000000000);
INSERT INTO tmp.issue_tmp (id, left_value, right_value) VALUES (‘te123123123’, 1104.061225000000000000, 2.000000000000000000);
INSERT INTO tmp.issue_tmp (id, left_value, right_value) VALUES (‘test’, 19104.061225000000000000, 1.000000000000000000);select left_value * issue_tmp.right_value
from issue_tmp;
结果全部为null
我查询了文档貌似是精度溢出的问题,但是实际上用例几个的计算结果不会有溢出的情况,在mysql中也能正常查出结果。