summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorIgor Babaev <igor@askmonty.org>2011-05-27 15:20:19 -0700
committerIgor Babaev <igor@askmonty.org>2011-05-27 15:20:19 -0700
commitd86ad1861a57558e63dc68bf372eff6bdb22cb6d (patch)
tree38cf953c068132ff125bdab7e1e0c2b4a27f85c6 /sql
parentdeb3b9a17498d101468fc12a633245fc74730133 (diff)
downloadmariadb-git-d86ad1861a57558e63dc68bf372eff6bdb22cb6d.tar.gz
Backported the test case for bug 43617 fixed by the patch for bug 42580.
Backported the test case for bug 49906 fixed by the patch for LP bug 625841. Slightly optimized the code of the fix for LP bug 625841.
Diffstat (limited to 'sql')
-rw-r--r--sql/filesort.cc11
1 files changed, 5 insertions, 6 deletions
diff --git a/sql/filesort.cc b/sql/filesort.cc
index 6e3bf27afcc..b9cda236b0c 100644
--- a/sql/filesort.cc
+++ b/sql/filesort.cc
@@ -547,12 +547,11 @@ static ha_rows find_all_keys(SORTPARAM *param, SQL_SELECT *select,
/* Temporary set for register_used_fields and register_field_in_read_map */
sort_form->read_set= &sort_form->tmp_set;
register_used_fields(param);
- if (select && select->cond)
- select->cond->walk(&Item::register_field_in_read_map, 1,
- (uchar*) sort_form);
- if (select && select->pre_idx_push_select_cond)
- select->pre_idx_push_select_cond->walk(&Item::register_field_in_read_map,
- 1, (uchar*) sort_form);
+ Item *sort_cond= !select ?
+ 0 : !select->pre_idx_push_select_cond ?
+ select->cond : select->pre_idx_push_select_cond;
+ if (sort_cond)
+ sort_cond->walk(&Item::register_field_in_read_map, 1, (uchar*) sort_form);
sort_form->column_bitmaps_set(&sort_form->tmp_set, &sort_form->tmp_set,
&sort_form->tmp_set);