mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-13723: Server crashes in ha_heap::find_unique_row or Assertion `0' failed in st_select_lex_unit::optimize with INTERSECT
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).
This commit is contained in:
@ -525,3 +525,13 @@ t3 CREATE TABLE `t3` (
|
|||||||
`b1` blob DEFAULT NULL
|
`b1` blob DEFAULT NULL
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
drop tables t1,t2,t3;
|
drop tables t1,t2,t3;
|
||||||
|
#
|
||||||
|
# MDEV-13723: Server crashes in ha_heap::find_unique_row or
|
||||||
|
# Assertion `0' failed in st_select_lex_unit::optimize with INTERSECT
|
||||||
|
#
|
||||||
|
CREATE TABLE t (i INT);
|
||||||
|
INSERT INTO t VALUES (1),(2);
|
||||||
|
SELECT * FROM t WHERE i != ANY ( SELECT 3 EXCEPT SELECT 3 );
|
||||||
|
i
|
||||||
|
drop table t;
|
||||||
|
# End of 10.3 tests
|
||||||
|
@ -689,3 +689,4 @@ View Create View character_set_client collation_connection
|
|||||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS (select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1`) union select `__3`.`c` AS `c`,`__3`.`d` AS `d` from ((select `test`.`t2`.`c` AS `c`,`test`.`t2`.`d` AS `d` from `test`.`t2`) intersect (select `test`.`t3`.`e` AS `e`,`test`.`t3`.`f` AS `f` from `test`.`t3`)) `__3` union (select 4 AS `4`,4 AS `4`) latin1 latin1_swedish_ci
|
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS (select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1`) union select `__3`.`c` AS `c`,`__3`.`d` AS `d` from ((select `test`.`t2`.`c` AS `c`,`test`.`t2`.`d` AS `d` from `test`.`t2`) intersect (select `test`.`t3`.`e` AS `e`,`test`.`t3`.`f` AS `f` from `test`.`t3`)) `__3` union (select 4 AS `4`,4 AS `4`) latin1 latin1_swedish_ci
|
||||||
drop view v1;
|
drop view v1;
|
||||||
drop tables t1,t2,t3;
|
drop tables t1,t2,t3;
|
||||||
|
# End of 10.3 tests
|
||||||
|
@ -81,3 +81,17 @@ create table t3 (select a,b,b1 from t1) except (select c,d,d1 from t2);
|
|||||||
show create table t3;
|
show create table t3;
|
||||||
|
|
||||||
drop tables t1,t2,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
|
||||||
|
@ -190,3 +190,4 @@ show create view v1;
|
|||||||
drop view v1;
|
drop view v1;
|
||||||
drop tables t1,t2,t3;
|
drop tables t1,t2,t3;
|
||||||
|
|
||||||
|
--echo # End of 10.3 tests
|
||||||
|
@ -1259,11 +1259,11 @@ bool st_select_lex_unit::optimize()
|
|||||||
{
|
{
|
||||||
item->assigned(0); // We will reinit & rexecute unit
|
item->assigned(0); // We will reinit & rexecute unit
|
||||||
item->reset();
|
item->reset();
|
||||||
if (table->is_created())
|
}
|
||||||
{
|
if (table->is_created())
|
||||||
table->file->ha_delete_all_rows();
|
{
|
||||||
table->file->info(HA_STATUS_VARIABLE);
|
table->file->ha_delete_all_rows();
|
||||||
}
|
table->file->info(HA_STATUS_VARIABLE);
|
||||||
}
|
}
|
||||||
/* re-enabling indexes for next subselect iteration */
|
/* re-enabling indexes for next subselect iteration */
|
||||||
if (union_distinct && table->file->ha_enable_indexes(HA_KEY_SWITCH_ALL))
|
if (union_distinct && table->file->ha_enable_indexes(HA_KEY_SWITCH_ALL))
|
||||||
|
Reference in New Issue
Block a user