summaryrefslogtreecommitdiff
path: root/sql/opt_range.cc
diff options
context:
space:
mode:
authorunknown <timour@askmonty.org>2011-12-08 12:05:52 +0200
committerunknown <timour@askmonty.org>2011-12-08 12:05:52 +0200
commit314c377422dd13c86591a4de32162467eb540c33 (patch)
tree3096f6e07e04a1d334dbe44aa653d6e2fd238efb /sql/opt_range.cc
parent1f3e540385fd7705047242e58800fcceb5ef3da5 (diff)
downloadmariadb-git-314c377422dd13c86591a4de32162467eb540c33.tar.gz
Fixed bug lp:888456
Analysis: The class member QUICK_GROUP_MIN_MAX_SELECT::seen_first_key was not reset between subquery re-executions. Thus each subsequent execution continued from the group that was reached by the previous subquery execution. As a result loose scan reached end of file much earlier, and returned empty result where it shouldn't. Solution: Reset seen_first_key before each re-execution of the loose scan.
Diffstat (limited to 'sql/opt_range.cc')
-rw-r--r--sql/opt_range.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/sql/opt_range.cc b/sql/opt_range.cc
index 3821665fb22..889af68f77a 100644
--- a/sql/opt_range.cc
+++ b/sql/opt_range.cc
@@ -10627,6 +10627,7 @@ int QUICK_GROUP_MIN_MAX_SELECT::reset(void)
int result;
DBUG_ENTER("QUICK_GROUP_MIN_MAX_SELECT::reset");
+ seen_first_key= FALSE;
if (!head->key_read)
{
doing_key_read= 1;