summaryrefslogtreecommitdiff
path: root/sql/filesort.h
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2016-07-01 16:44:17 +0200
committerSergei Golubchik <serg@mariadb.org>2016-07-01 16:44:17 +0200
commitffac85482b0de13d7780b47edd2a5d5947b528dd (patch)
tree1b822b6181370b24aae8dbb35bd80c905ef8e7a6 /sql/filesort.h
parent76f492e26d8d45c678c570be2cf4ca5d238edceb (diff)
downloadmariadb-git-ffac85482b0de13d7780b47edd2a5d5947b528dd.tar.gz
MDEV-8989 ORDER BY optimizer ignores equality propagation
Restore the fix from the commit 99cd5a9 that was lost in a merge.
Diffstat (limited to 'sql/filesort.h')
-rw-r--r--sql/filesort.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/sql/filesort.h b/sql/filesort.h
index 18029a10c14..2b4f7ac2654 100644
--- a/sql/filesort.h
+++ b/sql/filesort.h
@@ -26,6 +26,7 @@ struct TABLE;
class Filesort_tracker;
struct SORT_FIELD;
typedef struct st_order ORDER;
+class JOIN;
/**
@@ -72,7 +73,7 @@ public:
~Filesort() { cleanup(); }
/* Prepare ORDER BY list for sorting. */
- uint make_sortorder(THD *thd);
+ uint make_sortorder(THD *thd, JOIN *join, table_map first_table_bit);
private:
void cleanup();
@@ -152,11 +153,13 @@ public:
{ return filesort_buffer.sort_buffer_size(); }
friend SORT_INFO *filesort(THD *thd, TABLE *table, Filesort *filesort,
- Filesort_tracker* tracker);
+ Filesort_tracker* tracker, JOIN *join,
+ table_map first_table_bit);
};
SORT_INFO *filesort(THD *thd, TABLE *table, Filesort *filesort,
- Filesort_tracker* tracker);
+ Filesort_tracker* tracker, JOIN *join=NULL,
+ table_map first_table_bit=0);
void change_double_for_sort(double nr,uchar *to);