summaryrefslogtreecommitdiff
path: root/sql-common
diff options
context:
space:
mode:
authorunknown <ramil/ram@mysql.com/myoffice.izhnet.ru>2006-10-04 16:00:44 +0500
committerunknown <ramil/ram@mysql.com/myoffice.izhnet.ru>2006-10-04 16:00:44 +0500
commit2bd1c73e3db37b0dde4c7aed9a5ddff846fe610c (patch)
treed9947744f488898a87ea87cc648a9282c9feee2b /sql-common
parent418ae41b4867e53e770d79f66e6d9ba3f7b8974b (diff)
downloadmariadb-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')
-rw-r--r--sql-common/my_time.c5
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 */