mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
fixed using VIEW fields (BUG#4617)
mysql-test/r/view.result: using VIEW fields several times in query resolved via temporary tables mysql-test/t/view.test: using VIEW fields several times in query resolved via temporary tables sql/item.h: fixed using of result_field by Item_ref sql/sql_base.cc: Create Item_ref as reference on VIEW fields expression reference sql/sql_insert.cc: privent creating Item_ref in insert list (where Item_fields should be) sql/sql_lex.cc: Item_ref creation control sql/sql_lex.h: Item_ref creation control sql/sql_update.cc: privent creating Item_ref in insert list (where Item_fields should be) and creation Item_fields for UPDATE list sql/table.cc: Do not create Item_ref for internal view of view processing
This commit is contained in:
@ -993,3 +993,18 @@ col1 col2
|
||||
5 Hello, view world
|
||||
drop view v2, v1;
|
||||
drop table t1;
|
||||
create table t1 (col1 char(5),col2 char(5));
|
||||
create view v1 (col1,col2) as select col1,col2 from t1;
|
||||
insert into v1 values('s1','p1'),('s1','p2'),('s1','p3'),('s1','p4'),('s2','p1'),('s3','p2'),('s4','p4');
|
||||
select distinct first.col2 from t1 first where first.col2 in (select second.col2 from t1 second where second.col1<>first.col1);
|
||||
col2
|
||||
p1
|
||||
p2
|
||||
p4
|
||||
select distinct first.col2 from v1 first where first.col2 in (select second.col2 from t1 second where second.col1<>first.col1);
|
||||
col2
|
||||
p1
|
||||
p2
|
||||
p4
|
||||
drop view v1;
|
||||
drop table t1;
|
||||
|
@ -922,3 +922,14 @@ update v2 set col2='Hello, view world';
|
||||
select * from t1;
|
||||
drop view v2, v1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# using VIEW fields several times in query resolved via temporary tables
|
||||
#
|
||||
create table t1 (col1 char(5),col2 char(5));
|
||||
create view v1 (col1,col2) as select col1,col2 from t1;
|
||||
insert into v1 values('s1','p1'),('s1','p2'),('s1','p3'),('s1','p4'),('s2','p1'),('s3','p2'),('s4','p4');
|
||||
select distinct first.col2 from t1 first where first.col2 in (select second.col2 from t1 second where second.col1<>first.col1);
|
||||
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;
|
||||
|
Reference in New Issue
Block a user