diff options
author | unknown <ramil/ram@mysql.com/myoffice.izhnet.ru> | 2006-10-04 16:00:44 +0500 |
---|---|---|
committer | unknown <ramil/ram@mysql.com/myoffice.izhnet.ru> | 2006-10-04 16:00:44 +0500 |
commit | 2bd1c73e3db37b0dde4c7aed9a5ddff846fe610c (patch) | |
tree | d9947744f488898a87ea87cc648a9282c9feee2b /sql-common/my_time.c | |
parent | 418ae41b4867e53e770d79f66e6d9ba3f7b8974b (diff) | |
download | mariadb-git-2bd1c73e3db37b0dde4c7aed9a5ddff846fe610c.tar.gz |
Fix for bug #21789: DATETIME with 0000-00-00 11:22:33 should be invalid, but is accepted
Reject '0000-00-00 01:01:01' dates.
mysql-test/r/date_formats.result:
Fix for bug #21789: DATETIME with 0000-00-00 11:22:33 should be invalid, but is accepted
- test results adjusted.
sql-common/my_time.c:
Fix for bug #21789: DATETIME with 0000-00-00 11:22:33 should be invalid, but is accepted
- don't allow dates with NULL date part and not NULL time part.
Diffstat (limited to 'sql-common/my_time.c')
-rw-r--r-- | sql-common/my_time.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/sql-common/my_time.c b/sql-common/my_time.c index 3c46a944ba9..e98831ecace 100644 --- a/sql-common/my_time.c +++ b/sql-common/my_time.c @@ -350,7 +350,10 @@ str_to_datetime(const char *str, uint length, MYSQL_TIME *l_time, l_time->year > 9999 || l_time->month > 12 || l_time->day > 31 || l_time->hour > 23 || l_time->minute > 59 || l_time->second > 59 || - (!(flags & TIME_FUZZY_DATE) && (l_time->month == 0 || l_time->day == 0))) + (!(flags & TIME_FUZZY_DATE) && + (l_time->month == 0 || l_time->day == 0)) || + (l_time->year == 0 && l_time->month == 0 && l_time->day == 0 && + (l_time->hour != 0 || l_time->minute != 0 || l_time->second != 0))) { /* Only give warning for a zero date if there is some garbage after */ if (!not_zero_date) /* If zero date */ |