Bug #79112 w/ EXTRACT and NULLIF working together, get unexpected warnings
Submitted: 4 Nov 2015 6:43 Modified: 4 Nov 2015 6:54
Reporter: Su Dylan Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Server: DML Severity:S3 (Non-critical)
Version:5.7.8, 5.6.27, 5.7.9 OS:Any
Assigned to: CPU Architecture:Any
Tags: regression

[4 Nov 2015 6:43] Su Dylan
Description:
Output:
=======
mysql> select  EXTRACT( QUARTER FROM NULLIF( '2015-01-01', '2015-01-02' ) ) ; show warnings;
+--------------------------------------------------------------+
| EXTRACT( QUARTER FROM NULLIF( '2015-01-01', '2015-01-02' ) ) |
+--------------------------------------------------------------+
|                                                         NULL |
+--------------------------------------------------------------+
1 row in set, 2 warnings (0.00 sec)

+---------+------+-------------------------------------------------+
| Level   | Code | Message                                         |
+---------+------+-------------------------------------------------+
| Warning | 1292 | Truncated incorrect INTEGER value: '2015-01-01' |
| Warning | 1292 | Incorrect datetime value: '2015'                |
+---------+------+-------------------------------------------------+
2 rows in set (0.00 sec)

mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.8-rc  |
+-----------+
1 row in set (0.00 sec)

mysql> select @@sql_mode;
+-------------------+
| @@sql_mode        |
+-------------------+
| STRICT_ALL_TABLES |
+-------------------+
1 row in set (0.00 sec)

Problem:
========
1 is expected and no warnings.

How to repeat:
 select NULLIF( '2015-01-01', '2015-01-02' ), EXTRACT( QUARTER FROM '2015-01-01' );

Suggested fix:
1 is expected and no warnings.
[4 Nov 2015 6:54] MySQL Verification Team
Hello Su Dylan,

Thank you for the report and test case.

Thanks,
Umesh