1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-24 11:21:21 +03:00

fixed SET with subselect

This commit is contained in:
bell@sanja.is.com.ua
2003-01-04 16:33:42 +02:00
parent 7c82789929
commit cfc99ce45c
3 changed files with 20 additions and 1 deletions

View File

@@ -848,6 +848,13 @@ do @a:=(SELECT a from t);
select @a;
@a
1
set @a:=2;
set @a:=(SELECT a from t);
select @a;
@a
1
drop table t;
do (SELECT a from t);
Table 'test.t' doesn't exist
set @a:=(SELECT a from t);
Table 'test.t' doesn't exist

View File

@@ -468,6 +468,11 @@ create table t (a int);
insert into t values (1);
do @a:=(SELECT a from t);
select @a;
set @a:=2;
set @a:=(SELECT a from t);
select @a;
drop table t;
-- error 1146
do (SELECT a from t);
-- error 1146
set @a:=(SELECT a from t);

View File

@@ -2470,9 +2470,16 @@ mysql_execute_command(THD *thd)
break;
}
case SQLCOM_SET_OPTION:
if (!(res=sql_set_variables(thd, &lex->var_list)))
if (tables && ((res= check_table_access(thd, SELECT_ACL, tables)) ||
(res= open_and_lock_tables(thd,tables))))
break;
fix_tables_pointers(lex->all_selects_list);
if (!(res= sql_set_variables(thd, &lex->var_list)))
send_ok(thd);
if (thd->net.report_error)
res= -1;
break;
case SQLCOM_UNLOCK_TABLES:
unlock_locked_tables(thd);
if (thd->options & OPTION_TABLE_LOCK)