summaryrefslogtreecommitdiff
path: root/sql/set_var.cc
diff options
context:
space:
mode:
authorunknown <bell@sanja.is.com.ua>2004-04-08 00:19:43 +0300
committerunknown <bell@sanja.is.com.ua>2004-04-08 00:19:43 +0300
commitd5135aff3ad8af11279927185cecda65a6291dd1 (patch)
tree8623a46473c8c2cb769c792a41b7a28bae698da7 /sql/set_var.cc
parent94002eb59512e78df76922ae5c2204359fc306e4 (diff)
parentc9d856c8b78812dd402b89c62bcea23cc7dbe2a1 (diff)
downloadmariadb-git-d5135aff3ad8af11279927185cecda65a6291dd1.tar.gz
merge
sql/item_cmpfunc.cc: Auto merged sql/mysql_priv.h: Auto merged sql/set_var.cc: Auto merged sql/sql_lex.cc: Auto merged sql/sql_lex.h: Auto merged sql/sql_parse.cc: Auto merged sql/sql_prepare.cc: Auto merged sql/sql_select.cc: Auto merged
Diffstat (limited to 'sql/set_var.cc')
-rw-r--r--sql/set_var.cc28
1 files changed, 28 insertions, 0 deletions
diff --git a/sql/set_var.cc b/sql/set_var.cc
index f47e013eb94..54f2d75d6a8 100644
--- a/sql/set_var.cc
+++ b/sql/set_var.cc
@@ -2529,6 +2529,24 @@ int set_var::check(THD *thd)
}
+int set_var::light_check(THD *thd)
+{
+ if (var->check_type(type))
+ {
+ my_error(type == OPT_GLOBAL ? ER_LOCAL_VARIABLE : ER_GLOBAL_VARIABLE,
+ MYF(0),
+ var->name);
+ return -1;
+ }
+ if ((type == OPT_GLOBAL && check_global_access(thd, SUPER_ACL)))
+ return 1;
+
+ if (value && (value->fix_fields(thd, 0, &value) || value->check_cols(1)))
+ return -1;
+ return 0;
+}
+
+
int set_var::update(THD *thd)
{
if (!value)
@@ -2556,6 +2574,16 @@ int set_var_user::check(THD *thd)
}
+int set_var_user::light_check(THD *thd)
+{
+ /*
+ Item_func_set_user_var can't substitute something else on its place =>
+ 0 can be passed as last argument (reference on item)
+ */
+ return (user_var_item->fix_fields(thd, 0, (Item**) 0));
+}
+
+
int set_var_user::update(THD *thd)
{
if (user_var_item->update())