| Bug #49322 | Server is adding extra NULL row on processing a WHERE clause | ||
|---|---|---|---|
| Submitted: | 2 Dec 2009 3:20 | Modified: | 11 Mar 2011 12:48 |
| Reporter: | Patrick Crews | Email Updates: | |
| Status: | Duplicate | Impact on me: | |
| Category: | MySQL Server: Optimizer | Severity: | S3 (Non-critical) |
| Version: | 5.0+ | OS: | Any |
| Assigned to: | Assigned Account | CPU Architecture: | Any |
| Tags: | extra rows, where | ||
[2 Dec 2009 3:20]
Patrick Crews
[23 Nov 2010 8:53]
MySQL Verification Team
a neater testcase from from 5.1.53
drop table if exists h,m,k;
create table `h`(`pk` int not null,`col_int_key` int) engine=myisam;
insert into `h` values (1,null),(4,2),(5,2),(3,4),(2,8);
create table `m` (`pk` int not null,`col_int_key` int) engine=myisam ;
insert into `m` values (1,2),(2,7),(3,5),(4,7),(5,5),(6,null),(7,null),(8,9);
create table `k` (`pk` int not null,`col_int_key` int) engine=myisam;
insert into `k` values (1,9),(2,2),(3,5),(4,2),(5,7),(6,0),(7,5);
/*exhibit A*/select table1.pk from k table1
right join h table2 on table1.`col_int_key`=table2.`col_int_key`
right join m table4 on table2.`col_int_key`=table4.`col_int_key`;
/*exhibit B*/select table1.pk from k table1
right join h table2 on table1.`col_int_key`=table2.`col_int_key`
right join m table4 on table2.`col_int_key`=table4.`col_int_key`
where table1.pk is null;
Notice the extra NULL that appears in exhibit B:
mysql> /*exhibit A*/select table1.pk from k table1
-> right join h table2 on table1.`col_int_key`=table2.`col_int_key`
-> right join m table4 on table2.`col_int_key`=table4.`col_int_key`
+------+
| pk |
+------+
| 2 |
| 4 |
| 2 |
| 4 |
| NULL |
| NULL |
| NULL |
| NULL |
| NULL |
| NULL |
| NULL |
+------+
11 rows in set (0.00 sec)
mysql> /*exhibit B*/select table1.pk from k table1
-> right join h table2 on table1.`col_int_key`=table2.`col_int_key`
-> right join m table4 on table2.`col_int_key`=table4.`col_int_key`
-> where table1.pk is null;
+------+
| pk |
+------+
| NULL |
| NULL |
| NULL |
| NULL |
| NULL |
| NULL |
| NULL |
| NULL |
+------+
8 rows in set (0.00 sec)
[25 Nov 2010 17:54]
Ole John Aske
I suspect this to be a duplicate of bug#58490 which there has been committed a (still unreviewed) fix for.
[25 Nov 2010 22:24]
Ole John Aske
Has tested these testcases with proposed fix for bug#58490. All reported issues are fixed with this, http://lists.mysql.com/commits/125027
[26 Jan 2011 7:25]
Ole John Aske
Closed - as it is a duplicate of bug#58490.
[1 Feb 2011 14:26]
Bugs System
Pushed into mysql-trunk 5.6.2 (revid:ole.john.aske@oracle.com-20110201142457-3hdefsxj12q0acvl) (version source revid:ole.john.aske@oracle.com-20110201142457-3hdefsxj12q0acvl) (merge vers: 5.6.2) (pib:24)
[1 Feb 2011 14:26]
Bugs System
Pushed into mysql-5.5 5.5.10 (revid:ole.john.aske@oracle.com-20110201141934-ppx2z4tn6vv0u8q9) (version source revid:ole.john.aske@oracle.com-20110201141934-ppx2z4tn6vv0u8q9) (merge vers: 5.5.10) (pib:24)
[2 Feb 2011 7:48]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/130176 4163 Ole John Aske 2011-02-02 Fix for bug#58490: 'Incorrect result in multi level OUTER JOIN', cherry picked into telco branches. Also fix the duplicate bug#49322. Se original commit http://lists.mysql.com/commits/130129 for comments
[2 Feb 2011 7:48]
Bugs System
Pushed into mysql-5.1-telco-7.0 5.1.51-ndb-7.0.22 (revid:ole.john.aske@oracle.com-20110202074752-4c6jzaiwxvf7rngl) (version source revid:ole.john.aske@oracle.com-20110202074752-4c6jzaiwxvf7rngl) (merge vers: 5.1.51-ndb-7.0.22) (pib:24)
[11 Mar 2011 12:48]
Jon Stephens
Closed as duplicate of BUG#58490 per Ole John's comments above.
