Commit 25e32d83 authored by unknown's avatar unknown

fix for bug#15828

problem was not checking 2nd parameter of str_to_date against NULL


mysql-test/r/date_formats.result:
  bk commit
parent 4e195cbd
...@@ -464,3 +464,9 @@ d1 d2 ...@@ -464,3 +464,9 @@ d1 d2
02 February 02 February
01 January 01 January
drop table t1; drop table t1;
select str_to_date( 1, NULL );
str_to_date( 1, NULL )
NULL
select str_to_date( NULL, 1 );
str_to_date( NULL, 1 )
NULL
...@@ -268,4 +268,11 @@ insert into t1 (f1) values ("2005-01-01"); ...@@ -268,4 +268,11 @@ insert into t1 (f1) values ("2005-01-01");
insert into t1 (f1) values ("2005-02-01"); insert into t1 (f1) values ("2005-02-01");
select date_format(f1, "%m") as d1, date_format(f1, "%M") as d2 from t1 order by date_format(f1, "%M"); select date_format(f1, "%m") as d1, date_format(f1, "%M") as d2 from t1 order by date_format(f1, "%M");
drop table t1; drop table t1;
#
# Bug #15828
#
select str_to_date( 1, NULL );
select str_to_date( NULL, 1 );
# End of 4.1 tests # End of 4.1 tests
...@@ -2750,7 +2750,7 @@ void Item_func_str_to_date::fix_length_and_dec() ...@@ -2750,7 +2750,7 @@ void Item_func_str_to_date::fix_length_and_dec()
cached_field_type= MYSQL_TYPE_STRING; cached_field_type= MYSQL_TYPE_STRING;
max_length= MAX_DATETIME_FULL_WIDTH*MY_CHARSET_BIN_MB_MAXLEN; max_length= MAX_DATETIME_FULL_WIDTH*MY_CHARSET_BIN_MB_MAXLEN;
cached_timestamp_type= MYSQL_TIMESTAMP_NONE; cached_timestamp_type= MYSQL_TIMESTAMP_NONE;
if ((const_item= args[1]->const_item())) if ((const_item= args[1]->const_item()) && !args[1]->null_value)
{ {
format= args[1]->val_str(&format_str); format= args[1]->val_str(&format_str);
cached_format_type= get_date_time_result_type(format->ptr(), cached_format_type= get_date_time_result_type(format->ptr(),
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment