Jarek Potiuk created AIRFLOW-7001:
-------------------------------------
Summary: Mysql 5.7 handles timezone-aware timestamps differently
than 5.6
Key: AIRFLOW-7001
URL: https://issues.apache.org/jira/browse/AIRFLOW-7001
Project: Apache Airflow
Issue Type: Improvement
Components: database, mysql
Affects Versions: 1.10.9, 2.0.0
Reporter: Jarek Potiuk
In Airflow when UtcDateTime is used, always Timezone is required and added if
missing.
For example when utcnow() function is used to get timezone we get the timestamp
in the form of '2020-03-07 07:32:34.121705+00:00'
When such value - with timezone - is used in MySQL 5.6 the timezone part is
IGNORED:
{code:java}
mysql> create table test (a timestamp(6));
Query OK, 0 rows affected (0.01 sec)
mysql> insert into test values ('2020-03-07 07:32:34.121705+00:00');
Query OK, 1 row affected, 1 warning (0.00 sec)
mysql> insert into test values ('2020-03-07 07:32:34.121705+01:00');
Query OK, 1 row affected, 1 warning (0.00 sec)
mysql> select * from test;
+----------------------------+
| a |
+----------------------------+
| 2020-03-07 07:32:34.121705 |
| 2020-03-07 07:32:34.121705 |
+----------------------------+
2 rows in set (0.00 sec)
mysql> SHOW VARIABLES LIKE "%version%";
+-------------------------+------------------------------+
| Variable_name | Value |
+-------------------------+------------------------------+
| innodb_version | 5.6.47 |
| protocol_version | 10 |
| slave_type_conversions | |
| version | 5.6.47 |
| version_comment | MySQL Community Server (GPL) |
| version_compile_machine | x86_64 |
| version_compile_os | Linux |
+-------------------------+------------------------------+
7 rows in set (0.00 sec)
{code}
The same insert in 5.7 results in error:
{code:java}
mysql> create table test(a TIMESTAMP(6));
Query OK, 0 rows affected (0.00 sec)
mysql> insert into test values ('2020-03-07 07:32:34.121705+01:00');
ERROR 1292 (22007): Incorrect datetime value: '2020-03-07
07:32:34.121705+01:00' for column 'a' at row 1
mysql> SHOW VARIABLES LIKE "%version%";
+-------------------------+------------------------------+
| Variable_name | Value |
+-------------------------+------------------------------+
| innodb_version | 5.7.29 |
| protocol_version | 10 |
| slave_type_conversions | |
| tls_version | TLSv1,TLSv1.1,TLSv1.2 |
| version | 5.7.29 |
| version_comment | MySQL Community Server (GPL) |
| version_compile_machine | x86_64 |
| version_compile_os | Linux |
+-------------------------+------------------------------+
8 rows in set (0.00 sec)
{code}
Seems that for MySQL - neither 5.6 (ignore timezone) nor 5.7 (crashes) works
properly.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)