Open
Description
Version
main branch
Describe what's wrong
When using the Trino connector to read MySQL tables containing timestamp columns with precision specification (e.g., TIMESTAMP(6)), the query fails with a type conversion error.
Error message and/or stacktrace
trino> select created_at from ext.tmp.test_table limit 10;
created_at
------------
(0 rows)
Query 20250310_092550_25102_uxzme, FAILED, 1 node
Splits: 1 total, 1 done (100.00%)
0.57 [10 rows, 0B] [17 rows/s, 0B/s]
Query 20250310_092550_25102_uxzme failed: Could not serialize column 'created_at' of type 'timestamp(0)' at position 1:1
Caused by: java.lang.IllegalArgumentException: Expected 0s for digits beyond precision 0: epochMicros = 1679540780487000
at io.trino.spi.type.SqlTimestamp.newInstance(SqlTimestamp.java:64)
at io.trino.spi.type.ShortTimestampType.getObjectValue(ShortTimestampType.java:149)
at io.trino.server.protocol.QueryResultRows$ResultsIterator.getRowValues(QueryResultRows.java:333)
How to reproduce
- Create a MySQL table with a timestamp column with precision:
CREATE TABLE tmp.test_table ( id INT PRIMARY KEY, event_time TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP(6) );
- Insert sample data
INSERT INTO tmp.test_table VALUES (1, '2025-03-10 00:00:00');
- Query the table through Gravitino's Trino connector
Additional context
No response