summaryrefslogtreecommitdiff
path: root/sql/sql_select.cc
diff options
context:
space:
mode:
authorIgor Babaev <igor@askmonty.org>2017-01-05 13:54:31 -0800
committerIgor Babaev <igor@askmonty.org>2017-01-05 13:54:31 -0800
commitae1b3d1991b679bb38095711de27934d7683deda (patch)
tree982182ec011e6114a7874920748ea376a48baec2 /sql/sql_select.cc
parent9e528d4fdeab83fcc75ec788da939937ce27b98d (diff)
downloadmariadb-git-ae1b3d1991b679bb38095711de27934d7683deda.tar.gz
Fixed bug mdev-10705.
The fix for bug mdev-5104 did not take into account that for any call of setup_order the size of ref_array must be big enough. This patch fixes this problem.
Diffstat (limited to 'sql/sql_select.cc')
-rw-r--r--sql/sql_select.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index c406fab5a3a..2c65c59ad7e 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -714,10 +714,15 @@ JOIN::prepare(Item ***rref_pointer_array,
if (mixed_implicit_grouping && tbl->table)
tbl->table->maybe_null= 1;
}
+
+ uint real_og_num= og_num;
+ if (skip_order_by &&
+ select_lex != select_lex->master_unit()->global_parameters)
+ real_og_num+= select_lex->order_list.elements;
if ((wild_num && setup_wild(thd, tables_list, fields_list, &all_fields,
wild_num)) ||
- select_lex->setup_ref_array(thd, og_num) ||
+ select_lex->setup_ref_array(thd, real_og_num) ||
setup_fields(thd, (*rref_pointer_array), fields_list, MARK_COLUMNS_READ,
&all_fields, 1) ||
setup_without_group(thd, (*rref_pointer_array), tables_list,