summaryrefslogtreecommitdiff
path: root/sql-common
diff options
context:
space:
mode:
authormonty@mysql.com <>2005-08-09 00:13:49 +0300
committermonty@mysql.com <>2005-08-09 00:13:49 +0300
commit99cb083549fb13a5f9e6d13617e75f1fadf65236 (patch)
treef29a98a0f6052dc852c1bf2c088567e6a0bb7f6d /sql-common
parent30a51b53231d655af747d1506575d4878f4f2342 (diff)
downloadmariadb-git-99cb083549fb13a5f9e6d13617e75f1fadf65236.tar.gz
Review of new pushed code
- Fixed some error condtion when handling dates with 'T' - Added extra test for bug #11867 (Wrong result with "... WHERE ROW( a, b ) IN ( SELECT DISTINCT a, b WHERE ...)" to show it's not yet fixed - Safety fixes and cleanups
Diffstat (limited to 'sql-common')
-rw-r--r--sql-common/my_time.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sql-common/my_time.c b/sql-common/my_time.c
index 1726a9a6e78..40d7799e274 100644
--- a/sql-common/my_time.c
+++ b/sql-common/my_time.c
@@ -137,7 +137,9 @@ str_to_datetime(const char *str, uint length, MYSQL_TIME *l_time,
If length= 8 or >= 14 then year is of format YYYY.
(YYYY-MM-DD, YYYYMMDD, YYYYYMMDDHHMMSS)
*/
- for (pos=str; pos != end && my_isdigit(&my_charset_latin1,*pos) ; pos++)
+ for (pos=str;
+ pos != end && (my_isdigit(&my_charset_latin1,*pos) || *pos == 'T');
+ pos++)
;
digits= (uint) (pos-str);
@@ -203,7 +205,7 @@ str_to_datetime(const char *str, uint length, MYSQL_TIME *l_time,
const char *start= str;
ulong tmp_value= (uint) (uchar) (*str++ - '0');
while (str != end && my_isdigit(&my_charset_latin1,str[0]) &&
- --field_length)
+ (!is_internal_format || --field_length))
{
tmp_value=tmp_value*10 + (ulong) (uchar) (*str - '0');
str++;