← Back to team overview

maria-developers team mailing list archive

Re: [Commits] Rev 3552: Fix bug MDEV-4648 SQ pushdown: Wrong result (missing rows) with materialization+semijoin, IN and ALL subqueries, UNION in file:///home/tsk/mprog/src/10.0-md83/

 

09.08.2013 14:30, timour@xxxxxxxxxxxx пишет:
At file:///home/tsk/mprog/src/10.0-md83/

------------------------------------------------------------
revno: 3552
revision-id: timour@xxxxxxxxxxxx-20130809113013-ia2f7zzw3mv3in7u
parent: timour@xxxxxxxxxxxx-20130611081135-rge7p00h8e9nhypj
fixes bug: https://mariadb.atlassian.net/browse/MDEV-4648
committer: timour@xxxxxxxxxxxx
branch nick: 10.0-md83
timestamp: Fri 2013-08-09 14:30:13 +0300
message:
   Fix bug MDEV-4648 SQ pushdown: Wrong result (missing rows) with materialization+semijoin, IN and ALL subqueries, UNION
   (part of MDEV-83)
Analysis: The cause of the wrong result was that the ALL subquery was incorrectly
   attached to the last table in the join plan <t1, sj-mat, t2>. The ALL
   subquery was transformed into a MIN expression, however it still depended
   on OUTER_REF_TABLE_BIT as if it was a subquery. The reason for this
   dependence was that the transformed MIN expression referred to the
   Item_cache object of the left subquery operand created for the initial
   Item_in_optimizer.
Solution: When transforming an ALL subquery into a MIN/MAX expression, use the
   actual left argument expression, instead of the Item_cache created
   for the subquery.

OK to push. Thank you!