1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-24 11:21:21 +03:00

Implement ORDER BY DESC optimization, which reads values in descending

order directly from the index instead of using a filesort.


mysql-test/mysql-test-run.sh:
  [ -n $SKIP_TEST ] --> [ -n "$SKIP_TEST" ]; portability fix
mysql-test/r/order_by.result:
  Added test for ORDER BY DESC optimization
mysql-test/t/order_by.test:
  Added test for ORDER BY DESC optimization
sql/opt_range.cc:
  Added QUICK_SELECT_DESC class which implements ORDER BY DESC optimization.
sql/opt_range.h:
  Added QUICK_SELECT_DESC class which implements ORDER BY DESC optimization.
sql/sql_select.cc:
  Added QUICK_SELECT_DESC class which implements ORDER BY DESC optimization.
BitKeeper/etc/ignore:
  Added .gdbinit .vimrc to the ignore list
BitKeeper/etc/logging_ok:
  Logging to logging@openlogging.org accepted
This commit is contained in:
unknown
2001-06-28 03:06:23 -04:00
parent f246b61915
commit 950a6871d9
8 changed files with 263 additions and 6 deletions

View File

@@ -80,6 +80,20 @@ public:
bool unique_key_range();
};
class QUICK_SELECT_DESC: public QUICK_SELECT
{
public:
QUICK_SELECT_DESC(QUICK_SELECT *q);
int get_next();
private:
int cmp_prev(QUICK_RANGE *range);
bool range_reads_after_key(QUICK_RANGE *range);
QUICK_SELECT *quick;
List<QUICK_RANGE> rev_ranges;
List_iterator<QUICK_RANGE> rev_it;
};
class SQL_SELECT :public Sql_alloc {
public:
QUICK_SELECT *quick; // If quick-select used