mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 20:12:31 +01:00
Merge remote-tracking branch 'origin/10.2' into bb-10.2-ext
This commit is contained in:
commit
4fc1f2fb75
3 changed files with 33 additions and 3 deletions
|
@ -3161,6 +3161,19 @@ SELECT ('bar',1) IN ( SELECT c, ROW_NUMBER() OVER (PARTITION BY c) FROM t1);
|
|||
0
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-13351: Server crashes in st_select_lex::set_explain_type upon UNION with window function
|
||||
#
|
||||
CREATE TABLE t1 (i INT);
|
||||
INSERT INTO t1 VALUES (1),(2);
|
||||
SELECT Nth_value(i,1) OVER() FROM t1
|
||||
UNION ALL
|
||||
( SELECT Nth_value(i,2) OVER() FROM t1 LIMIT 0 )
|
||||
;
|
||||
Nth_value(i,1) OVER()
|
||||
1
|
||||
1
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Start of 10.3 tests
|
||||
#
|
||||
#
|
||||
|
|
|
@ -1943,6 +1943,17 @@ INSERT IGNORE INTO t1 VALUES ('foo');
|
|||
SELECT ('bar',1) IN ( SELECT c, ROW_NUMBER() OVER (PARTITION BY c) FROM t1);
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-13351: Server crashes in st_select_lex::set_explain_type upon UNION with window function
|
||||
--echo #
|
||||
CREATE TABLE t1 (i INT);
|
||||
INSERT INTO t1 VALUES (1),(2);
|
||||
SELECT Nth_value(i,1) OVER() FROM t1
|
||||
UNION ALL
|
||||
( SELECT Nth_value(i,2) OVER() FROM t1 LIMIT 0 )
|
||||
;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # Start of 10.3 tests
|
||||
--echo #
|
||||
|
|
|
@ -4507,10 +4507,16 @@ void st_select_lex::set_explain_type(bool on_the_fly)
|
|||
if (join)
|
||||
{
|
||||
bool uses_cte= false;
|
||||
for (JOIN_TAB *tab= first_explain_order_tab(join); tab;
|
||||
tab= next_explain_order_tab(join, tab))
|
||||
for (JOIN_TAB *tab= first_linear_tab(join, WITHOUT_BUSH_ROOTS,
|
||||
WITH_CONST_TABLES);
|
||||
tab;
|
||||
tab= next_linear_tab(join, tab, WITHOUT_BUSH_ROOTS))
|
||||
{
|
||||
if (tab->table && tab->table->pos_in_table_list->with)
|
||||
/*
|
||||
pos_in_table_list=NULL for e.g. post-join aggregation JOIN_TABs.
|
||||
*/
|
||||
if (tab->table && tab->table->pos_in_table_list &&
|
||||
tab->table->pos_in_table_list->with)
|
||||
{
|
||||
uses_cte= true;
|
||||
break;
|
||||
|
|
Loading…
Reference in a new issue