mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
fixed field resolving mode fo INSERT/REPLACE and CRETE with SELECT (BUG#4090)
mysql-test/r/subselect.result: outer fields resolving in INSERT/REPLACE and CRETE with SELECT mysql-test/t/subselect.test: outer fields resolving in INSERT/REPLACE and CRETE with SELECT sql/sql_parse.cc: fixed field resolving mode fo INSERT/REPLACE and CRETE with SELECT sql/sql_prepare.cc: fixed field resolving mode fo INSERT/REPLACE and CRETE with SELECT
This commit is contained in:
@ -1831,3 +1831,29 @@ Warnings:
|
||||
Note 1276 Field or reference 'up.a' of SELECT #2 was resolved in SELECT #1
|
||||
Note 1003 select test.up.a AS `a`,test.up.b AS `b` from test.t1 up where exists(select 1 AS `Not_used` from test.t1 where (test.t1.a = test.up.a))
|
||||
drop table t1;
|
||||
DROP TABLE IF EXISTS t1, t2, t3;
|
||||
Warnings:
|
||||
Note 1051 Unknown table 't1'
|
||||
Note 1051 Unknown table 't2'
|
||||
Note 1051 Unknown table 't3'
|
||||
CREATE TABLE t1 ( a int, b int );
|
||||
CREATE TABLE t2 ( c int, d int );
|
||||
INSERT INTO t1 VALUES (1,2), (2,3), (3,4);
|
||||
SELECT a AS abc, b FROM t1 WHERE b = (SELECT MIN(b) FROM t1 WHERE a=abc);
|
||||
abc b
|
||||
1 2
|
||||
2 3
|
||||
3 4
|
||||
INSERT INTO t2 SELECT a AS abc, b FROM t1 WHERE b = (SELECT MIN(b) FROM t1 WHERE a=abc);
|
||||
select * from t2;
|
||||
c d
|
||||
1 2
|
||||
2 3
|
||||
3 4
|
||||
CREATE TABLE t3 SELECT a AS abc, b FROM t1 WHERE b = (SELECT MIN(b) FROM t1 WHERE a=abc);
|
||||
select * from t3;
|
||||
abc b
|
||||
1 2
|
||||
2 3
|
||||
3 4
|
||||
DROP TABLE t1, t2, t3;
|
||||
|
@ -1167,3 +1167,17 @@ insert into t1 values (1,2),(3,4);
|
||||
select * from t1 up where exists (select * from t1 where t1.a=up.a);
|
||||
explain extended select * from t1 up where exists (select * from t1 where t1.a=up.a);
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# outer fields resolving in INSERT/REPLACE and CRETE with SELECT
|
||||
#
|
||||
DROP TABLE IF EXISTS t1, t2, t3;
|
||||
CREATE TABLE t1 ( a int, b int );
|
||||
CREATE TABLE t2 ( c int, d int );
|
||||
INSERT INTO t1 VALUES (1,2), (2,3), (3,4);
|
||||
SELECT a AS abc, b FROM t1 WHERE b = (SELECT MIN(b) FROM t1 WHERE a=abc);
|
||||
INSERT INTO t2 SELECT a AS abc, b FROM t1 WHERE b = (SELECT MIN(b) FROM t1 WHERE a=abc);
|
||||
select * from t2;
|
||||
CREATE TABLE t3 SELECT a AS abc, b FROM t1 WHERE b = (SELECT MIN(b) FROM t1 WHERE a=abc);
|
||||
select * from t3;
|
||||
DROP TABLE t1, t2, t3;
|
||||
|
Reference in New Issue
Block a user