diff options
Diffstat (limited to 'sql/sql_select.h')
-rw-r--r-- | sql/sql_select.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/sql/sql_select.h b/sql/sql_select.h index 0dfecc98a48..a438f29bd23 100644 --- a/sql/sql_select.h +++ b/sql/sql_select.h @@ -535,14 +535,19 @@ typedef struct st_join_table { void cleanup(); inline bool is_using_loose_index_scan() { - const SQL_SELECT *sel= filesort ? filesort->select : select; + const SQL_SELECT *sel= get_sql_select(); return (sel && sel->quick && (sel->quick->get_type() == QUICK_SELECT_I::QS_TYPE_GROUP_MIN_MAX)); } bool is_using_agg_loose_index_scan () { + const SQL_SELECT *sel= get_sql_select(); return (is_using_loose_index_scan() && - ((QUICK_GROUP_MIN_MAX_SELECT *)select->quick)->is_agg_distinct()); + ((QUICK_GROUP_MIN_MAX_SELECT *)sel->quick)->is_agg_distinct()); + } + const SQL_SELECT *get_sql_select() + { + return filesort ? filesort->select : select; } bool is_inner_table_of_semi_join_with_first_match() { |