diff options
author | Varun Gupta <varunraiko1803@gmail.com> | 2018-11-01 14:26:13 +0530 |
---|---|---|
committer | Varun Gupta <varunraiko1803@gmail.com> | 2018-11-01 14:27:24 +0530 |
commit | e60cbbbda31d7a10e87c16313171b2036a4519c4 (patch) | |
tree | 89f601857b1c6e0e861c801520cad389895d8080 /sql/sql_select.cc | |
parent | f8268f3cce4577c28ab62e53293556d05a74fb1a (diff) | |
download | mariadb-git-10.2-mdev12575.tar.gz |
MDEV-12575: Server crash in AGGR_OP::put_record or in JOIN_CACHE::free or Invalid write in JOIN::make_aggr_tables_info10.2-mdev12575
During the optimize state of a query, we come know that the result set
would atmost contain one row, then for such a query we don't need
to compute GROUP BY, ORDER BY and DISTINCT.
Diffstat (limited to 'sql/sql_select.cc')
-rw-r--r-- | sql/sql_select.cc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 1fa80da85a6..a721aed6ce3 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -2245,6 +2245,18 @@ setup_subq_exit: if (!tables_list || !table_count) { choose_tableless_subquery_plan(); + + /* The output has atmost one row */ + if (group_list) + { + group_list= 0; + group_optimized_away= 1; + rollup.state= ROLLUP::STATE_NONE; + } + order=0; + simple_order=1; + select_distinct=0; + if (select_lex->have_window_funcs()) { if (!(join_tab= (JOIN_TAB*) thd->alloc(sizeof(JOIN_TAB)))) |