mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Fix bug#11482 4.1.12 produces different resultset for a complex query
than in previous 4.1.x Wrongly applied optimization were adding NOT NULL constraint which results in rejecting valid rows and reduced result set. The problem was that add_notnull_conds() while checking subquery were adding NOT NULL constraint to left joined table, to which, normally, optimization don't have to be applied. sql/sql_select.cc: Fix bug #11482 Wrongly applied optimization was erroneously rejecting valid rows Constraint were added to optimization appliance test. mysql-test/t/select.test: Test case for bug #11482 Wrongly applied optimization was erroneously rejecting valid rows mysql-test/r/select.result: Test case for bug #11482 Wrongly applied optimization was erroneously rejecting valid rows
This commit is contained in:
@ -2559,3 +2559,14 @@ WHERE
|
||||
COUNT(*)
|
||||
4
|
||||
drop table t1,t2,t3;
|
||||
create table t1 (f1 int);
|
||||
insert into t1 values (1),(NULL);
|
||||
create table t2 (f2 int, f3 int, f4 int);
|
||||
create index idx1 on t2 (f4);
|
||||
insert into t2 values (1,2,3),(2,4,6);
|
||||
select A.f2 from t1 left join t2 A on A.f2 = f1 where A.f3=(select min(f3)
|
||||
from t2 C where A.f4 = C.f4) or A.f3 IS NULL;
|
||||
f2
|
||||
1
|
||||
NULL
|
||||
drop table t1,t2;
|
||||
|
@ -2116,3 +2116,14 @@ WHERE
|
||||
|
||||
drop table t1,t2,t3;
|
||||
|
||||
#
|
||||
# Bug #11482 4.1.12 produces different resultset for a complex query
|
||||
# than in previous 4.1.x
|
||||
create table t1 (f1 int);
|
||||
insert into t1 values (1),(NULL);
|
||||
create table t2 (f2 int, f3 int, f4 int);
|
||||
create index idx1 on t2 (f4);
|
||||
insert into t2 values (1,2,3),(2,4,6);
|
||||
select A.f2 from t1 left join t2 A on A.f2 = f1 where A.f3=(select min(f3)
|
||||
from t2 C where A.f4 = C.f4) or A.f3 IS NULL;
|
||||
drop table t1,t2;
|
||||
|
Reference in New Issue
Block a user