MDEV-6785 Wrong result on 2nd execution of PS with aggregate function, FROM SQ or MERGE view
a different fix for view.test --ps-protocol crash (revert the old fix that has caused a regression)
This commit is contained in:
parent
303eec5774
commit
a8bd285f7c
@ -5500,6 +5500,20 @@ a b a b a c
|
||||
9 10 9 10 9 10
|
||||
drop view v1;
|
||||
drop table t1,t2;
|
||||
create table t1 (i int not null);
|
||||
insert into t1 values (1),(2);
|
||||
create table t2 (j int not null);
|
||||
insert into t2 values (11),(12);
|
||||
create algorithm=merge view v3 as select t1.* from t2 left join t1 on (t2.j = t1.i);
|
||||
prepare stmt from 'select count(v3.i) from t1, v3';
|
||||
execute stmt;
|
||||
count(v3.i)
|
||||
0
|
||||
execute stmt;
|
||||
count(v3.i)
|
||||
0
|
||||
drop table t1, t2;
|
||||
drop view v3;
|
||||
# -----------------------------------------------------------------
|
||||
# -- End of 10.0 tests.
|
||||
# -----------------------------------------------------------------
|
||||
|
@ -5364,6 +5364,21 @@ select * from t2, t1, v1 where t1.a=t2.a and t1.a=v1.a;
|
||||
drop view v1;
|
||||
drop table t1,t2;
|
||||
|
||||
#
|
||||
# MDEV-6785 Wrong result on 2nd execution of PS with aggregate function, FROM SQ or MERGE view
|
||||
#
|
||||
|
||||
create table t1 (i int not null);
|
||||
insert into t1 values (1),(2);
|
||||
create table t2 (j int not null);
|
||||
insert into t2 values (11),(12);
|
||||
create algorithm=merge view v3 as select t1.* from t2 left join t1 on (t2.j = t1.i);
|
||||
prepare stmt from 'select count(v3.i) from t1, v3';
|
||||
execute stmt;
|
||||
execute stmt;
|
||||
drop table t1, t2;
|
||||
drop view v3;
|
||||
|
||||
--echo # -----------------------------------------------------------------
|
||||
--echo # -- End of 10.0 tests.
|
||||
--echo # -----------------------------------------------------------------
|
||||
|
@ -465,8 +465,6 @@ bool mysql_derived_merge(THD *thd, LEX *lex, TABLE_LIST *derived)
|
||||
}
|
||||
}
|
||||
|
||||
if (!derived->merged_for_insert)
|
||||
dt_select->first_cond_optimization= FALSE; // consider it optimized
|
||||
exit_merge:
|
||||
if (arena)
|
||||
thd->restore_active_arena(arena, &backup);
|
||||
|
@ -633,7 +633,7 @@ inline int setup_without_group(THD *thd, Item **ref_pointer_array,
|
||||
res= setup_conds(thd, tables, leaves, conds);
|
||||
if (thd->lex->current_select->first_cond_optimization)
|
||||
{
|
||||
if (!res && *conds)
|
||||
if (!res && *conds && ! thd->lex->current_select->merged_into)
|
||||
(*reserved)= (*conds)->exists2in_reserved_items();
|
||||
else
|
||||
(*reserved)= 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user