[MCOL-4416] FROM_UNIXTIME() returns a bad result for DECIMAL input Created: 2020-11-27  Updated: 2023-07-02

Status: Open
Project: MariaDB ColumnStore
Component/s: PrimProc
Affects Version/s: 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-4419 MAKETIME() returns a wrong result for... Open
relates to MCOL-4420 DATE_ADD() returns a wrong result for... Open
relates to MCOL-4418 SEC_TO_TIME() returns a wrong result ... Open
relates to MCOL-4514 DATE + INTERVAL a SECOND is not like ... Open

 Description   

SET time_zone='+00:00';
DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (a DECIMAL(18,7)) ENGINE=ColumnStore;
INSERT INTO t1 VALUES (1000000000.3);
SELECT FROM_UNIXTIME(a) FROM t1;

+----------------------------+
| FROM_UNIXTIME(a)           |
+----------------------------+
| 2001-09-09 06:46:40.902848 |
+----------------------------+

The fractional part looks wrong.

If I run the same script with MyISAM (or any other engine), the result is as follows:

SET time_zone='+00:00';
DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (a DECIMAL(18,7)) ENGINE=MyISAM;
INSERT INTO t1 VALUES (1000000000.3);
SELECT FROM_UNIXTIME(a) FROM t1;

+----------------------------+
| FROM_UNIXTIME(a)           |
+----------------------------+
| 2001-09-09 01:46:40.300000 |
+----------------------------+

Looks correct.


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