diff options
-rw-r--r-- | BitKeeper/etc/logging_ok | 1 | ||||
-rw-r--r-- | mysql-test/r/user_var.result | 8 | ||||
-rw-r--r-- | mysql-test/t/user_var.test | 6 | ||||
-rw-r--r-- | sql/item_func.cc | 1 |
4 files changed, 16 insertions, 0 deletions
diff --git a/BitKeeper/etc/logging_ok b/BitKeeper/etc/logging_ok index a6699f7c515..705b336440b 100644 --- a/BitKeeper/etc/logging_ok +++ b/BitKeeper/etc/logging_ok @@ -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 diff --git a/mysql-test/r/user_var.result b/mysql-test/r/user_var.result index e06a113bd29..8abdb40399a 100644 --- a/mysql-test/r/user_var.result +++ b/mysql-test/r/user_var.result @@ -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 diff --git a/mysql-test/t/user_var.test b/mysql-test/t/user_var.test index 70283446fb3..3103de2dac5 100644 --- a/mysql-test/t/user_var.test +++ b/mysql-test/t/user_var.test @@ -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; diff --git a/sql/item_func.cc b/sql/item_func.cc index 723585be0b1..217768db2c5 100644 --- a/sql/item_func.cc +++ b/sql/item_func.cc @@ -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; } |