mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
623ed1c204
With INTERSECT/EXCEPT fact that subquery item of IN/ALL/ANY was not assigned value does not mean that temporary table used for calculating unit is empty (records could be deleted).
97 lines
3.6 KiB
Text
97 lines
3.6 KiB
Text
create table t1 (a int, b int) engine=MyISAM;
|
|
create table t2 (c int, d int) engine=MyISAM;
|
|
insert into t1 values (1,1),(2,2);
|
|
insert into t2 values (2,2),(3,3);
|
|
|
|
(select a,b from t1) except (select c,d from t2);
|
|
EXPLAIN (select a,b from t1) except (select c,d from t2);
|
|
EXPLAIN extended (select a,b from t1) except (select c,d from t2);
|
|
EXPLAIN extended select * from ((select a,b from t1) except (select c,d from t2)) a;
|
|
EXPLAIN format=json (select a,b from t1) except (select c,d from t2);
|
|
|
|
--replace_regex /"r_total_time_ms": [0-9e\.\-+]*,/"r_total_time_ms": "REPLACED",/
|
|
ANALYZE format=json (select a,b from t1) except (select c,d from t2);
|
|
--replace_regex /"r_total_time_ms": [0-9e\.\-+]*,/"r_total_time_ms": "REPLACED",/
|
|
ANALYZE format=json select * from ((select a,b from t1) except (select c,d from t2)) a;
|
|
select * from ((select a,b from t1) except (select c,d from t2)) a;
|
|
|
|
prepare stmt from "(select a,b from t1) except (select c,d from t2)";
|
|
execute stmt;
|
|
execute stmt;
|
|
|
|
prepare stmt from "select * from ((select a,b from t1) except (select c,d from t2)) a";
|
|
execute stmt;
|
|
execute stmt;
|
|
|
|
drop tables t1,t2;
|
|
|
|
|
|
create table t1 (a int, b int) engine=MyISAM;
|
|
create table t2 (c int, d int) engine=MyISAM;
|
|
create table t3 (e int, f int) engine=MyISAM;
|
|
create table t4 (g int, h int) engine=MyISAM;
|
|
insert into t1 values (1,1),(2,2);
|
|
insert into t2 values (2,2),(3,3);
|
|
insert into t3 values (4,4),(5,5);
|
|
insert into t4 values (4,4),(7,7);
|
|
|
|
(select a,b,e,f from t1,t3) except (select c,d,g,h from t2,t4);
|
|
EXPLAIN (select a,b,e,f from t1,t3) except (select c,d,g,h from t2,t4);
|
|
EXPLAIN (select a,b,e,f from t1,t3) except (select c,d,g,h from t2,t4);
|
|
EXPLAIN extended select * from ((select a,b,e,f from t1,t3) except (select c,d,g,h from t2,t4)) a;
|
|
EXPLAIN format=json (select a,b,e,f from t1,t3) except (select c,d,g,h from t2,t4);
|
|
|
|
--replace_regex /"r_total_time_ms": [0-9e\.\-+]*,/"r_total_time_ms": "REPLACED",/
|
|
ANALYZE format=json (select a,b,e,f from t1,t3) except (select c,d,g,h from t2,t4);
|
|
--replace_regex /"r_total_time_ms": [0-9e\.\-+]*,/"r_total_time_ms": "REPLACED",/
|
|
ANALYZE format=json select * from ((select a,b,e,f from t1,t3) except
|
|
(select c,d,g,h from t2,t4)) a;
|
|
select * from ((select a,b,e,f from t1,t3) except (select c,d,g,h from t2,t4)) a;
|
|
|
|
prepare stmt from "(select a,b,e,f from t1,t3) except (select c,d,g,h from t2,t4)";
|
|
execute stmt;
|
|
execute stmt;
|
|
|
|
prepare stmt from "select * from ((select a,b,e,f from t1,t3) except (select c,d,g,h from t2,t4)) a";
|
|
execute stmt;
|
|
execute stmt;
|
|
|
|
drop tables t1,t2,t3,t4;
|
|
|
|
select 1 as a from dual except select 1 from dual;
|
|
(select 1 from dual) except (select 1 from dual);
|
|
--error ER_WRONG_USAGE
|
|
(select 1 from dual into @v) except (select 1 from dual);
|
|
--error ER_PARSE_ERROR
|
|
select 1 from dual ORDER BY 1 except select 1 from dual;
|
|
|
|
select 1 as a from dual union all select 1 from dual;
|
|
--error ER_WRONG_USAGE
|
|
select 1 from dual except all select 1 from dual;
|
|
|
|
|
|
create table t1 (a int, b blob, a1 int, b1 blob) engine=MyISAM;
|
|
create table t2 (c int, d blob, c1 int, d1 blob) engine=MyISAM;
|
|
insert into t1 values (1,"ddd", 1, "sdfrrwwww"),(2, "fgh", 2, "dffggtt");
|
|
insert into t2 values (2, "fgh", 2, "dffggtt"),(3, "ffggddd", 3, "dfgg");
|
|
|
|
(select a,b,b1 from t1) except (select c,d,d1 from t2);
|
|
# make sure that blob is used
|
|
create table t3 (select a,b,b1 from t1) except (select c,d,d1 from t2);
|
|
show create table t3;
|
|
|
|
drop tables t1,t2,t3;
|
|
|
|
--echo #
|
|
--echo # MDEV-13723: Server crashes in ha_heap::find_unique_row or
|
|
--echo # Assertion `0' failed in st_select_lex_unit::optimize with INTERSECT
|
|
--echo #
|
|
CREATE TABLE t (i INT);
|
|
INSERT INTO t VALUES (1),(2);
|
|
|
|
SELECT * FROM t WHERE i != ANY ( SELECT 3 EXCEPT SELECT 3 );
|
|
|
|
drop table t;
|
|
|
|
|
|
--echo # End of 10.3 tests
|