Commit 95e1acc1 authored by unknown's avatar unknown

Merge eagle.intranet.mysql.r18.ru:/home/bar/mysql-4.1

into eagle.intranet.mysql.r18.ru:/home/bar/mysql-5.0


mysql-test/r/user_var.result:
  Auto merged
mysql-test/t/user_var.test:
  Auto merged
sql/item_func.cc:
  Auto merged
parents c1195f79 e10b5bd1
...@@ -204,3 +204,10 @@ set @var= NULL ; ...@@ -204,3 +204,10 @@ set @var= NULL ;
select FIELD( @var,'1it','Hit') as my_column; select FIELD( @var,'1it','Hit') as my_column;
my_column my_column
0 0
select @v, coercibility(@v);
@v coercibility(@v)
NULL 2
set @v1=null, @v2=1, @v3=1.1, @v4=now();
select coercibility(@v1),coercibility(@v2),coercibility(@v3),coercibility(@v4);
coercibility(@v1) coercibility(@v2) coercibility(@v3) coercibility(@v4)
2 2 2 2
...@@ -124,3 +124,10 @@ drop table t1; ...@@ -124,3 +124,10 @@ drop table t1;
# #
set @var= NULL ; set @var= NULL ;
select FIELD( @var,'1it','Hit') as my_column; select FIELD( @var,'1it','Hit') as my_column;
#
# Bug#9425 A user variable doesn't always have implicit coercibility
#
select @v, coercibility(@v);
set @v1=null, @v2=1, @v3=1.1, @v4=now();
select coercibility(@v1),coercibility(@v2),coercibility(@v3),coercibility(@v4);
...@@ -3569,20 +3569,20 @@ Item_func_set_user_var::update() ...@@ -3569,20 +3569,20 @@ Item_func_set_user_var::update()
case REAL_RESULT: case REAL_RESULT:
{ {
res= update_hash((void*) &save_result.vreal,sizeof(save_result.vreal), res= update_hash((void*) &save_result.vreal,sizeof(save_result.vreal),
REAL_RESULT, &my_charset_bin, DERIVATION_NONE); REAL_RESULT, &my_charset_bin, DERIVATION_IMPLICIT);
break; break;
} }
case INT_RESULT: case INT_RESULT:
{ {
res= update_hash((void*) &save_result.vint, sizeof(save_result.vint), res= update_hash((void*) &save_result.vint, sizeof(save_result.vint),
INT_RESULT, &my_charset_bin, DERIVATION_NONE); INT_RESULT, &my_charset_bin, DERIVATION_IMPLICIT);
break; break;
} }
case STRING_RESULT: case STRING_RESULT:
{ {
if (!save_result.vstr) // Null value if (!save_result.vstr) // Null value
res= update_hash((void*) 0, 0, STRING_RESULT, &my_charset_bin, res= update_hash((void*) 0, 0, STRING_RESULT, &my_charset_bin,
DERIVATION_NONE); DERIVATION_IMPLICIT);
else else
res= update_hash((void*) save_result.vstr->ptr(), res= update_hash((void*) save_result.vstr->ptr(),
save_result.vstr->length(), STRING_RESULT, save_result.vstr->length(), STRING_RESULT,
...@@ -3850,7 +3850,10 @@ void Item_func_get_user_var::fix_length_and_dec() ...@@ -3850,7 +3850,10 @@ void Item_func_get_user_var::fix_length_and_dec()
} }
} }
else else
{
collation.set(&my_charset_bin, DERIVATION_IMPLICIT);
null_value= 1; null_value= 1;
}
if (error) if (error)
thd->fatal_error(); thd->fatal_error();
......
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