[MXS-2354] Timestamp/Datetime precision lost when using cdc streaming Created: 2019-02-27  Updated: 2019-09-30  Resolved: 2019-09-30

Status: Closed
Project: MariaDB MaxScale
Component/s: avrorouter, binlogrouter, cdc
Affects Version/s: 2.2.15, 2.3.4
Fix Version/s: 2.4.3

Type: Bug Priority: Major
Reporter: Krzysztof Lewandowski Assignee: markus makela
Resolution: Fixed Votes: 0
Labels: None
Environment:

docker images


Sprint: MXS-SPRINT-91

 Description   

When trying to run a cdc.py script for a table like:

CREATE TABLE `names` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) DEFAULT NULL,
  `t1` timestamp(3) NOT NULL DEFAULT current_timestamp(3) ON UPDATE current_timestamp(3),
  `t2` datetime(6) DEFAULT NULL,
  PRIMARY KEY (`id`)
);

data printed for datetime/timestamp field doesn't have milli-/microseconds part.

For example:

{"domain": 0, "server_id": 0, "sequence": 0, "event_number": 137636, "timestamp": 1551252268, "event_type": "insert", "id": 1, "name": "x", "t1": "2019-02-27 07:24:28", "t2": "2019-01-01 00:01:01"}
{"domain": 0, "server_id": 0, "sequence": 0, "event_number": 137637, "timestamp": 1551252316, "event_type": "insert", "id": 2, "name": "x", "t1": "2019-02-27 08:25:30", "t2": "2019-01-01 00:01:01"}
{"domain": 0, "server_id": 0, "sequence": 0, "event_number": 137638, "timestamp": 1551252369, "event_type": "update_before", "id": 1, "name": "x", "t1": "2019-02-27 07:24:28", "t2": "2019-01-01 00:01:01"}
{"domain": 0, "server_id": 0, "sequence": 0, "event_number": 137639, "timestamp": 1551252369, "event_type": "update_after", "id": 1, "name": "y", "t1": "2019-02-27 07:26:09", "t2": "2019-01-01 00:01:01"}

while data in the table looks like this:

MariaDB [test]> select * from names;
+----+------+-------------------------+----------------------------+
| id | name | t1                      | t2                         |
+----+------+-------------------------+----------------------------+
|  1 | y    | 2019-02-27 07:26:09.773 | 2019-01-01 00:01:01.120000 |
|  2 | x    | 2019-02-27 08:25:30.111 | 2019-01-01 00:01:01.120000 |
+----+------+-------------------------+----------------------------+
2 rows in set (0.001 sec)



 Comments   
Comment by Krzysztof Lewandowski [ 2019-02-27 ]

I believe this is a problem of converting timestamp-like values to string in avrorouter

Generated at Thu Feb 08 04:13:31 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.