mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 13:32:33 +01:00
Merge abelkin@bk-internal.mysql.com:/home/bk/mysql-5.0
into sanja.is.com.ua:/home/bell/mysql/bk/mysql-5.0
This commit is contained in:
commit
f1e280e255
3 changed files with 65 additions and 5 deletions
|
@ -1014,3 +1014,25 @@ p2
|
|||
p4
|
||||
drop view v1;
|
||||
drop table t1;
|
||||
create table t1 (a int);
|
||||
create view v1 as select a from t1;
|
||||
insert into t1 values (1);
|
||||
SET @v0 = '2';
|
||||
PREPARE stmt FROM 'UPDATE v1 SET a = ?';
|
||||
EXECUTE stmt USING @v0;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
SET @v0 = '3';
|
||||
PREPARE stmt FROM 'insert into v1 values (?)';
|
||||
EXECUTE stmt USING @v0;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
SET @v0 = '4';
|
||||
PREPARE stmt FROM 'insert into v1 (a) values (?)';
|
||||
EXECUTE stmt USING @v0;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
select * from t1;
|
||||
a
|
||||
2
|
||||
3
|
||||
4
|
||||
drop view v1;
|
||||
drop table t1;
|
||||
|
|
|
@ -943,3 +943,33 @@ select distinct first.col2 from t1 first where first.col2 in (select second.col2
|
|||
select distinct first.col2 from v1 first where first.col2 in (select second.col2 from t1 second where second.col1<>first.col1);
|
||||
drop view v1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Test of view updatebility in prepared statement
|
||||
#
|
||||
create table t1 (a int);
|
||||
create view v1 as select a from t1;
|
||||
insert into t1 values (1);
|
||||
|
||||
#update
|
||||
SET @v0 = '2';
|
||||
PREPARE stmt FROM 'UPDATE v1 SET a = ?';
|
||||
EXECUTE stmt USING @v0;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
|
||||
#insert without field list
|
||||
SET @v0 = '3';
|
||||
PREPARE stmt FROM 'insert into v1 values (?)';
|
||||
EXECUTE stmt USING @v0;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
|
||||
#insert with field list
|
||||
SET @v0 = '4';
|
||||
PREPARE stmt FROM 'insert into v1 (a) values (?)';
|
||||
EXECUTE stmt USING @v0;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
|
||||
select * from t1;
|
||||
|
||||
drop view v1;
|
||||
drop table t1;
|
||||
|
|
|
@ -978,11 +978,19 @@ static int mysql_test_update(Prepared_statement *stmt,
|
|||
select->order_list.elements,
|
||||
(ORDER *) select->order_list.first)))
|
||||
{
|
||||
if (setup_fields(thd, 0, table_list,
|
||||
select->item_list, 1, 0, 0) ||
|
||||
setup_fields(thd, 0, table_list,
|
||||
stmt->lex->value_list, 0, 0, 0))
|
||||
res= -1;
|
||||
thd->lex->select_lex.no_wrap_view_item= 1;
|
||||
if (setup_fields(thd, 0, table_list, select->item_list, 1, 0, 0))
|
||||
{
|
||||
res= -1;
|
||||
thd->lex->select_lex.no_wrap_view_item= 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
thd->lex->select_lex.no_wrap_view_item= 0;
|
||||
if (setup_fields(thd, 0, table_list,
|
||||
stmt->lex->value_list, 0, 0, 0))
|
||||
res= -1;
|
||||
}
|
||||
}
|
||||
stmt->lex->unit.cleanup();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue