summaryrefslogtreecommitdiff
path: root/sql/sql_select.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/sql_select.cc')
-rw-r--r--sql/sql_select.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index be5e5be7cb7..cf7f310bbd5 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -4555,6 +4555,11 @@ sub_select(JOIN *join,JOIN_TAB *join_tab,bool end_of_records)
{
if ((error=(*join_tab->next_select)(join,join_tab+1,0)) < 0)
return error;
+ /*
+ Test if this was a SELECT DISTINCT query on a table that
+ was not in the field list; In this case we can abort if
+ we found a row, as no new rows can be added to the result.
+ */
if (not_used_in_distinct && found_records != join->found_records)
return 0;
}