mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 04:53:01 +01:00
fixed bug with type of user variables (bug #551)
This commit is contained in:
parent
e96c75fec0
commit
5722ae6627
4 changed files with 16 additions and 0 deletions
|
@ -35,5 +35,6 @@ serg@build.mysql2.com
|
|||
serg@serg.mysql.com
|
||||
serg@sergbook.mysql.com
|
||||
sinisa@rhols221.adsl.netsonic.fi
|
||||
vva@eagle.mysql.r18.ru
|
||||
walrus@mysql.com
|
||||
zak@balfor.local
|
||||
|
|
|
@ -14,3 +14,11 @@ table type possible_keys key key_len ref rows Extra
|
|||
t1 index NULL i 4 NULL 3 where used; Using index
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
t1 ref i i 4 const 1 where used
|
||||
@a:=10 @b:=1 @a > @b @a < @b
|
||||
10 1 1 0
|
||||
@a:="10" @b:="1" @a > @b @a < @b
|
||||
10 1 1 0
|
||||
@a:=10 @b:=2 @a > @b @a < @b
|
||||
10 2 1 0
|
||||
@a:="10" @b:="2" @a > @b @a < @b
|
||||
10 2 0 1
|
||||
|
|
|
@ -17,3 +17,9 @@ explain select * from t1 where @vv1:=@vv1+1 and i=@vv1;
|
|||
explain select @vv1:=i from t1 where i=@vv1;
|
||||
explain select * from t1 where i=@vv1;
|
||||
drop table t1,t2;
|
||||
|
||||
# Check types of variables
|
||||
select @a:=10, @b:=1, @a > @b, @a < @b;
|
||||
select @a:="10", @b:="1", @a > @b, @a < @b;
|
||||
select @a:=10, @b:=2, @a > @b, @a < @b;
|
||||
select @a:="10", @b:="2", @a > @b, @a < @b;
|
||||
|
|
|
@ -1676,6 +1676,7 @@ bool Item_func_set_user_var::fix_fields(THD *thd,TABLE_LIST *tables)
|
|||
if (Item_func::fix_fields(thd,tables) ||
|
||||
!(entry= get_variable(&thd->user_vars, name, 1)))
|
||||
return 1;
|
||||
entry->type= cached_result_type;
|
||||
entry->update_query_id=thd->query_id;
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue