summaryrefslogtreecommitdiff
path: root/sql-common
diff options
context:
space:
mode:
authorunknown <ramil/ram@mysql.com/myoffice.izhnet.ru>2006-07-23 13:43:44 +0500
committerunknown <ramil/ram@mysql.com/myoffice.izhnet.ru>2006-07-23 13:43:44 +0500
commit8819a677cc9872a9f9ecda4a806f3d2bcdf98a7d (patch)
treeab23512d6e8f526645eb8c22908190e9c563fd4b /sql-common
parent7c7949b05b8e5482bae6967f5bf2de78934dbbef (diff)
parent97a3d52682e9e92d2526b5260521d3a35bdce311 (diff)
downloadmariadb-git-8819a677cc9872a9f9ecda4a806f3d2bcdf98a7d.tar.gz
Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into mysql.com:/usr/home/ram/work/5.0.b19370 mysql-test/r/date_formats.result: Auto merged
Diffstat (limited to 'sql-common')
-rw-r--r--sql-common/my_time.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sql-common/my_time.c b/sql-common/my_time.c
index c9d39260761..93bf23ed284 100644
--- a/sql-common/my_time.c
+++ b/sql-common/my_time.c
@@ -69,6 +69,7 @@ uint calc_days_in_year(uint year)
Here we assume that year and month is ok !
If month is 0 we allow any date. (This only happens if we allow zero
date parts in str_to_datetime())
+ Disallow dates with zero year and non-zero month and/or day.
RETURN
0 ok
@@ -85,7 +86,8 @@ static my_bool check_date(const MYSQL_TIME *ltime, my_bool not_zero_date,
(!(flags & TIME_INVALID_DATES) &&
ltime->month && ltime->day > days_in_month[ltime->month-1] &&
(ltime->month != 2 || calc_days_in_year(ltime->year) != 366 ||
- ltime->day != 29)))
+ ltime->day != 29)) ||
+ (ltime->year == 0 && (ltime->month != 0 || ltime->day != 0)))
{
*was_cut= 2;
return TRUE;