summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <serg@serg.mylan>2003-07-04 14:42:57 +0200
committerunknown <serg@serg.mylan>2003-07-04 14:42:57 +0200
commit2848b0bed9998378b10ac181cd7223c5853549d9 (patch)
tree4db261f3d7045796becb94ce8e45e0e51752faef /sql
parentb22a79763179f5929a0030da40e0c23f77f33c5a (diff)
downloadmariadb-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.h3
-rw-r--r--sql/sql_select.cc2
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);