[MCOL-4419] MAKETIME() returns a wrong result for DECIMAL input Created: 2020-11-28  Updated: 2023-07-02

Status: Open
Project: MariaDB ColumnStore
Component/s: PrimProc
Affects Version/s: 5.4.3, 5.5.2, 5.6.1, 6.1.1
Fix Version/s: Icebox

Type: Bug Priority: Minor
Reporter: Alexander Barkov Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: datatype

Issue Links:
Relates
relates to MCOL-4416 FROM_UNIXTIME() returns a bad result ... Open
relates to MCOL-4418 SEC_TO_TIME() returns a wrong result ... Open
relates to MCOL-4420 DATE_ADD() returns a wrong result for... Open
relates to MCOL-4514 DATE + INTERVAL a SECOND is not like ... Open

 Description   

DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (a DECIMAL(18,7)) ENGINE=ColumnStore;
INSERT INTO t1 VALUES (50.1);
INSERT INTO t1 VALUES (50.12);
INSERT INTO t1 VALUES (50.123);
INSERT INTO t1 VALUES (50.1234);
INSERT INTO t1 VALUES (50.12345);
INSERT INTO t1 VALUES (50.123456);
INSERT INTO t1 VALUES (50.1234567);
SELECT MAKETIME(0,0,a) FROM t1;

+-----------------+
| MAKETIME(0,0,a) |
+-----------------+
| 00:00:50.000000 |
| 00:00:50.000000 |
| 00:00:50.000000 |
| 00:00:50.000000 |
| 00:00:50.000000 |
| 00:00:50.000000 |
| 00:00:50.000000 |
+-----------------+

This result looks wrong.

The correct result is:

DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (a DECIMAL(18,7)) ENGINE=MyISAM;
INSERT INTO t1 VALUES (50.1);
INSERT INTO t1 VALUES (50.12);
INSERT INTO t1 VALUES (50.123);
INSERT INTO t1 VALUES (50.1234);
INSERT INTO t1 VALUES (50.12345);
INSERT INTO t1 VALUES (50.123456);
INSERT INTO t1 VALUES (50.1234567);
SELECT MAKETIME(0,0,a) FROM t1;

+-----------------+
| MAKETIME(0,0,a) |
+-----------------+
| 00:00:50.100000 |
| 00:00:50.120000 |
| 00:00:50.123000 |
| 00:00:50.123400 |
| 00:00:50.123450 |
| 00:00:50.123456 |
| 00:00:50.123456 |
+-----------------+


Generated at Thu Feb 08 02:50:12 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.