#At file:///net/fimafeng09/export/home/tmp/oleja/mysql/mysql-5.5/ based on revid:georgi.kodinov@stripped
3236 Ole John Aske 2011-01-13
Fix for bug#58134: 'Incorrectly condition pushdown inside subquery to NDB engine'
An incorrect 'table_map' containing both the table itself,
and possible any outer-refs if this was the last table in
the subquery, was presented to make_cond_for_table().
As a pushed condition is only able to refer column from the table
the condition is pushed to, nothing else than columns from the
table itself (tab->table->map) may be refered in the pushed condition
constructed by 'push_cond= make_cond_for_table()'.
Also fix a minor 'copy and paste' bug in a comment
No testcase is possible on mainbranch as the NDB engine is not available (yet)
on mysql >= 5.5
=== modified file 'sql/sql_select.cc'
--- a/sql/sql_select.cc 2011-01-12 09:31:41 +0000
+++ b/sql/sql_select.cc 2011-01-13 09:20:45 +0000
@@ -6480,7 +6480,7 @@ make_join_select(JOIN *join,SQL_SELECT *
- make_cond_for_table(tmp, current_map, current_map);
+ make_cond_for_table(tmp, tab->table->map, tab->table->map);
/* Push condition to handler */
@@ -13099,7 +13099,7 @@ make_cond_for_table(COND *cond, table_ma
- Item_cond_and do not need fix_fields for execution, its parameters
+ Item_cond_or do not need fix_fields for execution, its parameters
are fixed or do not need fix_fields, too
Attachment: [text/bzr-bundle] email@example.com
|• bzr commit into mysql-5.5 branch (ole.john.aske:3236) Bug#58134||Ole John Aske||13 Jan|