summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--BitKeeper/etc/logging_ok1
-rw-r--r--mysql-test/r/user_var.result8
-rw-r--r--mysql-test/t/user_var.test6
-rw-r--r--sql/item_func.cc1
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;
}