diff options
author | unknown <serg@serg.mylan> | 2003-07-04 14:42:57 +0200 |
---|---|---|
committer | unknown <serg@serg.mylan> | 2003-07-04 14:42:57 +0200 |
commit | 2848b0bed9998378b10ac181cd7223c5853549d9 (patch) | |
tree | 4db261f3d7045796becb94ce8e45e0e51752faef /sql | |
parent | b22a79763179f5929a0030da40e0c23f77f33c5a (diff) | |
download | mariadb-git-2848b0bed9998378b10ac181cd7223c5853549d9.tar.gz |
merge + order by (bug #515) temporary fix
properly fixed in 4.1
Diffstat (limited to 'sql')
-rw-r--r-- | sql/ha_myisammrg.h | 3 | ||||
-rw-r--r-- | sql/sql_select.cc | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/sql/ha_myisammrg.h b/sql/ha_myisammrg.h index 440b51e660f..dd649fe8fcb 100644 --- a/sql/ha_myisammrg.h +++ b/sql/ha_myisammrg.h @@ -40,7 +40,8 @@ class ha_myisammrg: public handler } ulong index_flags(uint inx) const { - ulong flags=(HA_READ_NEXT | HA_READ_PREV | HA_READ_ORDER); + ulong flags=(HA_READ_NEXT | HA_READ_PREV | HA_READ_ORDER | + HA_NOT_READ_PREFIX_LAST); // This - last - flag is ONLY for 4.0 !!! return (flags | ((table->key_info[inx].algorithm == HA_KEY_ALG_FULLTEXT) ? 0 : HA_KEY_READ_ONLY)); } diff --git a/sql/sql_select.cc b/sql/sql_select.cc index bde5392d299..7176337dbfd 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -5843,6 +5843,8 @@ test_if_skip_sort_order(JOIN_TAB *tab,ORDER *order,ha_rows select_limit, */ if (!select->quick->reverse_sorted()) { + if (table->file->index_flags(ref_key) & HA_NOT_READ_PREFIX_LAST) + DBUG_RETURN(0); // Use filesort // ORDER BY range_key DESC QUICK_SELECT_DESC *tmp=new QUICK_SELECT_DESC(select->quick, used_key_parts); |