date_formats.test:
fix for bug #15828 after review doing val_str now before testing of null value secures the function for null values returned by dynamic functions - the fix before was incomplete andy covered constant null values
This commit is contained in:
parent
8885c80da2
commit
8c69d6abaf
@ -470,3 +470,6 @@ NULL
|
|||||||
select str_to_date( NULL, 1 );
|
select str_to_date( NULL, 1 );
|
||||||
str_to_date( NULL, 1 )
|
str_to_date( NULL, 1 )
|
||||||
NULL
|
NULL
|
||||||
|
select str_to_date( 1, IF(1=1,NULL,NULL) );
|
||||||
|
str_to_date( 1, IF(1=1,NULL,NULL) )
|
||||||
|
NULL
|
||||||
|
@ -274,5 +274,5 @@ drop table t1;
|
|||||||
#
|
#
|
||||||
select str_to_date( 1, NULL );
|
select str_to_date( 1, NULL );
|
||||||
select str_to_date( NULL, 1 );
|
select str_to_date( NULL, 1 );
|
||||||
|
select str_to_date( 1, IF(1=1,NULL,NULL) );
|
||||||
# End of 4.1 tests
|
# End of 4.1 tests
|
||||||
|
@ -2750,9 +2750,9 @@ 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;
|
||||||
|
format= args[1]->val_str(&format_str);
|
||||||
if (!args[1]->null_value && (const_item= args[1]->const_item()))
|
if (!args[1]->null_value && (const_item= args[1]->const_item()))
|
||||||
{
|
{
|
||||||
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(),
|
||||||
format->length());
|
format->length());
|
||||||
switch (cached_format_type) {
|
switch (cached_format_type) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user