Skip to content

Function date_add and date_sub don't check datetime field overflow #9667

@qw4990

Description

@qw4990

Bug Report

Please answer these questions before submitting your issue. Thanks!

  1. What did you do?
    If possible, provide a recipe for reproducing the error.
mysql> set sql_mode='traditional';
mysql> create table t1 (d date);
mysql> insert into t1 (d) select date_add('2000-01-01',interval 8000 year);
mysql> insert into t1 (d) select date_sub('2000-01-01', INTERVAL 2001 YEAR);
  1. What did you expect to see?
    In Mysql
mysql> set sql_mode='traditional';
Query OK, 0 rows affected (0.00 sec)
mysql> insert into t1 (d) select date_add('2000-01-01',interval 8000 year);
ERROR 1441 (22008): Datetime function: datetime field overflow
mysql> insert into t1 (d) select date_sub('2000-01-01', INTERVAL 2001 YEAR);
ERROR 1441 (22008): Datetime function: datetime field overflow
  1. What did you see instead?
    In TiDB
mysql> set sql_mode='traditional';
Query OK, 0 rows affected (0.00 sec)
mysql> insert into t1 (d) select date_add('2000-01-01',interval 8000 year);
Query OK, 1 row affected (0.00 sec)
Records: 1  Duplicates: 0  Warnings: 0
mysql> insert into t1 (d) select date_sub('2000-01-01', INTERVAL 2001 YEAR);
Query OK, 1 row affected (0.00 sec)
Records: 1  Duplicates: 0  Warnings: 0
  1. What version of TiDB are you using (tidb-server -V or run select tidb_version(); on TiDB)?
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| tidb_version()                                                                                                                                                                                                                                                                                                                     |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Release Version: v3.0.0-beta-197-g52c8267a7
Git Commit Hash: 52c8267a735dbb5e14b07c361ab8caa3efff5631
Git Branch: master
UTC Build Time: 2019-03-12 06:53:10
GoVersion: go version go1.12 darwin/amd64
Race Enabled: false
TiKV Min Version: 2.1.0-alpha.1-ff3dd160846b7d1aed9079c389fc188f7f5ea13e
Check Table Before Drop: false |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

Metadata

Metadata

Assignees

No one assigned

    Labels

    good first issueDenotes an issue ready for a new contributor, according to the "help wanted" guidelines.help wantedDenotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.type/bugThe issue is confirmed as a bug.type/compatibility

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions