diff options
author | Tor Didriksen <tor.didriksen@oracle.com> | 2011-04-28 09:03:56 +0200 |
---|---|---|
committer | Tor Didriksen <tor.didriksen@oracle.com> | 2011-04-28 09:03:56 +0200 |
commit | ae154449f1617585e8c6237331fa8a3db4e674bb (patch) | |
tree | ffeeb2dc04f84be12ecd411057799864419c125e /sql/item_timefunc.cc | |
parent | da0c7297ba55d8819ec35bd715e3b8e15339d849 (diff) | |
download | mariadb-git-ae154449f1617585e8c6237331fa8a3db4e674bb.tar.gz |
Bug#12340997 - DATE_ADD/DATE_SUB WITH INTERVAL CRASHES IN GET_INTERVAL_VALUE()
get_interval_value() was trying to parse the input string,
looking for leading '-' while skipping whitespace.
The macro my_isspace() does not work for utf16 character set,
since my_charset_utf16_general_ci.ctype == NULL.
Solution: convert input to ASCII before parsing.
mysql-test/r/ctype_utf16.result:
New test case.
mysql-test/t/ctype_utf16.test:
New test case.
sql/item_timefunc.cc:
Use val_string_ascii() rather than val_string()
so that we can safely use my_isspace() for skipping whitespace.
Diffstat (limited to 'sql/item_timefunc.cc')
-rw-r--r-- | sql/item_timefunc.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sql/item_timefunc.cc b/sql/item_timefunc.cc index 19e7b3f52ef..36b85f2411f 100644 --- a/sql/item_timefunc.cc +++ b/sql/item_timefunc.cc @@ -1430,7 +1430,7 @@ bool get_interval_value(Item *args,interval_type int_type, else { String *res; - if (!(res=args->val_str(str_value))) + if (!(res= args->val_str_ascii(str_value))) return (1); /* record negative intervalls in interval->neg */ |