[MDEV-15967] CONNECT engine loses microseconds in timestamps Created: 2018-04-21  Updated: 2018-04-23  Resolved: 2018-04-22

Status: Closed
Project: MariaDB Server
Component/s: Storage Engine - Connect, Temporal Types
Affects Version/s: 10.0, 10.1, 10.2, 10.3
Fix Version/s: N/A

Type: Bug Priority: Major
Reporter: Elena Stepanova Assignee: Olivier Bertrand
Resolution: Not a Bug Votes: 0
Labels: None


 Description   

CONNECT engine truncates microseconds in TIMESTAMP/DATETIME values upon storing them:

MariaDB [test]> create table tc (t timestamp(6)) engine=CONNECT table_type=DOS file_name='tc.file';
Query OK, 0 rows affected (0.03 sec)
 
MariaDB [test]> insert into tc values ('2012-12-12 12:12:12.123456');
Query OK, 1 row affected (0.01 sec)
 
MariaDB [test]> select * from tc;
+----------------------------+
| t                          |
+----------------------------+
| 2012-12-12 12:12:12.000000 |
+----------------------------+
1 row in set (0.00 sec)

$ cat data/test/tc.file
 1355307132

As a side-effect, system versioning for CONNECT tables does not work at all.



 Comments   
Comment by Olivier Bertrand [ 2018-04-22 ]

Works as designed.

Comment by Olivier Bertrand [ 2018-04-22 ]

Looking at the definition of MariaDB's timestamp in https://mariadb.com/kb/en/library/timestamp/ the timestamp format does not have millisecond even if it says Microseconds with a range of 0 to 6 can also be specified. If not specified, 0 is used.

Later on, it says that timestamps are internally stored as Epoch Seconds which cannot store millisecond. This is also what CONNECT does for all date data types.

It seems that later, additional storage was added for milliseconds but CONNECT does not support this.

Comment by Olivier Bertrand [ 2018-04-23 ]

I don't understand why table system versioning would need milliseconds. This could be another issue: versioning should be available without milliseconds.

Generated at Thu Feb 08 08:25:22 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.