diff options
author | unknown <bell@sanja.is.com.ua> | 2004-04-08 00:19:43 +0300 |
---|---|---|
committer | unknown <bell@sanja.is.com.ua> | 2004-04-08 00:19:43 +0300 |
commit | d5135aff3ad8af11279927185cecda65a6291dd1 (patch) | |
tree | 8623a46473c8c2cb769c792a41b7a28bae698da7 /sql/set_var.cc | |
parent | 94002eb59512e78df76922ae5c2204359fc306e4 (diff) | |
parent | c9d856c8b78812dd402b89c62bcea23cc7dbe2a1 (diff) | |
download | mariadb-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.cc | 28 |
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()) |