MySQL Lists are EOL. Please join:

List:Commits« Previous MessageNext Message »
From:ramil Date:October 4 2006 11:00am
Subject:bk commit into 4.1 tree (ramil:1.2543) BUG#21789
View as plain text  
Below is the list of changes that have just been committed into a local
4.1 repository of ram. When ram does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet@stripped, 2006-10-04 16:00:44+05:00, ramil@stripped +2 -0
  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@stripped, 2006-10-04 16:00:41+05:00, ramil@stripped +39 -18
    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@stripped, 2006-10-04 16:00:41+05:00, ramil@stripped +4 -1
    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.

# This is a BitKeeper patch.  What follows are the unified diffs for the
# set of deltas contained in the patch.  The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User:	ramil
# Host:	myoffice.izhnet.ru
# Root:	/usr/home/ram/work/bug21789/my41-bug21789

--- 1.22/mysql-test/r/date_formats.result	2006-10-04 16:00:49 +05:00
+++ 1.23/mysql-test/r/date_formats.result	2006-10-04 16:00:49 +05:00
@@ -181,12 +181,12 @@ date	format	datetime
 2003-01-02 02:11:12.12345AM	%Y-%m-%d %h:%i:%S.%f %p	2003-01-02 02:11:12.123450
 2003-01-02 12:11:12.12345 am	%Y-%m-%d %h:%i:%S.%f%p	2003-01-02 00:11:12.123450
 2003-01-02 11:11:12Pm	%Y-%m-%d %h:%i:%S%p	2003-01-02 23:11:12
-10:20:10	%H:%i:%s	0000-00-00 10:20:10
-10:20:10	%h:%i:%s.%f	0000-00-00 10:20:10
-10:20:10	%T	0000-00-00 10:20:10
-10:20:10AM	%h:%i:%s%p	0000-00-00 10:20:10
-10:20:10AM	%r	0000-00-00 10:20:10
-10:20:10.44AM	%h:%i:%s.%f%p	0000-00-00 10:20:10.440000
+10:20:10	%H:%i:%s	0000-00-00 00:00:00
+10:20:10	%h:%i:%s.%f	0000-00-00 00:00:00
+10:20:10	%T	0000-00-00 00:00:00
+10:20:10AM	%h:%i:%s%p	0000-00-00 00:00:00
+10:20:10AM	%r	0000-00-00 00:00:00
+10:20:10.44AM	%h:%i:%s.%f%p	0000-00-00 00:00:00
 15-01-2001 12:59:58	%d-%m-%Y %H:%i:%S	2001-01-15 12:59:58
 15 September 2001	%d %M %Y	2001-09-15 00:00:00
 15 SEPTEMB 2001	%d %M %Y	2001-09-15 00:00:00
@@ -203,6 +203,13 @@ Tuesday 52 2001	%W %V %X	2002-01-01 00:0
 15-01-2001	%d-%m-%Y %H:%i:%S	2001-01-15 00:00:00
 15-01-20	%d-%m-%y	2020-01-15 00:00:00
 15-2001-1	%d-%Y-%c	2001-01-15 00:00:00
+Warnings:
+Warning	1292	Truncated incorrect datetime value: '0000-00-00 10:20:10'
+Warning	1292	Truncated incorrect datetime value: '0000-00-00 10:20:10'
+Warning	1292	Truncated incorrect datetime value: '0000-00-00 10:20:10'
+Warning	1292	Truncated incorrect datetime value: '0000-00-00 10:20:10'
+Warning	1292	Truncated incorrect datetime value: '0000-00-00 10:20:10'
+Warning	1292	Truncated incorrect datetime value: '0000-00-00 10:20:10.440000'
 select date,format,DATE(str_to_date(date, format)) as date2 from t1;
 date	format	date2
 2003-01-02 10:11:12	%Y-%m-%d %H:%i:%S	2003-01-02
@@ -243,12 +250,12 @@ date	format	time
 2003-01-02 02:11:12.12345AM	%Y-%m-%d %h:%i:%S.%f %p	02:11:12.123450
 2003-01-02 12:11:12.12345 am	%Y-%m-%d %h:%i:%S.%f%p	00:11:12.123450
 2003-01-02 11:11:12Pm	%Y-%m-%d %h:%i:%S%p	23:11:12
-10:20:10	%H:%i:%s	10:20:10
-10:20:10	%h:%i:%s.%f	10:20:10
-10:20:10	%T	10:20:10
-10:20:10AM	%h:%i:%s%p	10:20:10
-10:20:10AM	%r	10:20:10
-10:20:10.44AM	%h:%i:%s.%f%p	10:20:10.440000
+10:20:10	%H:%i:%s	NULL
+10:20:10	%h:%i:%s.%f	NULL
+10:20:10	%T	NULL
+10:20:10AM	%h:%i:%s%p	NULL
+10:20:10AM	%r	NULL
+10:20:10.44AM	%h:%i:%s.%f%p	NULL
 15-01-2001 12:59:58	%d-%m-%Y %H:%i:%S	12:59:58
 15 September 2001	%d %M %Y	00:00:00
 15 SEPTEMB 2001	%d %M %Y	00:00:00
@@ -265,6 +272,13 @@ Tuesday 52 2001	%W %V %X	00:00:00
 15-01-2001	%d-%m-%Y %H:%i:%S	00:00:00
 15-01-20	%d-%m-%y	00:00:00
 15-2001-1	%d-%Y-%c	00:00:00
+Warnings:
+Warning	1292	Truncated incorrect time value: '0000-00-00 10:20:10'
+Warning	1292	Truncated incorrect time value: '0000-00-00 10:20:10'
+Warning	1292	Truncated incorrect time value: '0000-00-00 10:20:10'
+Warning	1292	Truncated incorrect time value: '0000-00-00 10:20:10'
+Warning	1292	Truncated incorrect time value: '0000-00-00 10:20:10'
+Warning	1292	Truncated incorrect time value: '0000-00-00 10:20:10.440000'
 select date,format,concat(TIME(str_to_date(date, format))) as time2 from t1;
 date	format	time2
 2003-01-02 10:11:12	%Y-%m-%d %H:%i:%S	10:11:12
@@ -274,12 +288,12 @@ date	format	time2
 2003-01-02 02:11:12.12345AM	%Y-%m-%d %h:%i:%S.%f %p	02:11:12.123450
 2003-01-02 12:11:12.12345 am	%Y-%m-%d %h:%i:%S.%f%p	00:11:12.123450
 2003-01-02 11:11:12Pm	%Y-%m-%d %h:%i:%S%p	23:11:12
-10:20:10	%H:%i:%s	10:20:10
-10:20:10	%h:%i:%s.%f	10:20:10
-10:20:10	%T	10:20:10
-10:20:10AM	%h:%i:%s%p	10:20:10
-10:20:10AM	%r	10:20:10
-10:20:10.44AM	%h:%i:%s.%f%p	10:20:10.440000
+10:20:10	%H:%i:%s	NULL
+10:20:10	%h:%i:%s.%f	NULL
+10:20:10	%T	NULL
+10:20:10AM	%h:%i:%s%p	NULL
+10:20:10AM	%r	NULL
+10:20:10.44AM	%h:%i:%s.%f%p	NULL
 15-01-2001 12:59:58	%d-%m-%Y %H:%i:%S	12:59:58
 15 September 2001	%d %M %Y	00:00:00
 15 SEPTEMB 2001	%d %M %Y	00:00:00
@@ -296,6 +310,13 @@ Tuesday 52 2001	%W %V %X	00:00:00
 15-01-2001	%d-%m-%Y %H:%i:%S	00:00:00
 15-01-20	%d-%m-%y	00:00:00
 15-2001-1	%d-%Y-%c	00:00:00
+Warnings:
+Warning	1292	Truncated incorrect time value: '0000-00-00 10:20:10'
+Warning	1292	Truncated incorrect time value: '0000-00-00 10:20:10'
+Warning	1292	Truncated incorrect time value: '0000-00-00 10:20:10'
+Warning	1292	Truncated incorrect time value: '0000-00-00 10:20:10'
+Warning	1292	Truncated incorrect time value: '0000-00-00 10:20:10'
+Warning	1292	Truncated incorrect time value: '0000-00-00 10:20:10.440000'
 select concat('',str_to_date('8:11:2.123456 03-01-02','%H:%i:%S.%f %y-%m-%d'));
 concat('',str_to_date('8:11:2.123456 03-01-02','%H:%i:%S.%f %y-%m-%d'))
 2003-01-02 08:11:02.123456

--- 1.15/sql-common/my_time.c	2006-10-04 16:00:49 +05:00
+++ 1.16/sql-common/my_time.c	2006-10-04 16:00:49 +05:00
@@ -350,7 +350,10 @@ str_to_datetime(const char *str, uint le
       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 */
Thread
bk commit into 4.1 tree (ramil:1.2543) BUG#21789ramil4 Oct