summaryrefslogtreecommitdiff
path: root/sql/ha_partition.cc
diff options
context:
space:
mode:
authorunknown <mikael/pappa@dator5.(none)>2006-09-19 07:48:40 -0400
committerunknown <mikael/pappa@dator5.(none)>2006-09-19 07:48:40 -0400
commit0bea3a4a244a061b2ca4917b072ecfea356f6e3f (patch)
treeba736e8e3e73e15d027f8487f70aee233162f36d /sql/ha_partition.cc
parent0812a1f02e32cf77b0d48c0ec27e75719835d49a (diff)
parent392c3122f6d7931c39d66062acfe4ea265b4ba5c (diff)
downloadmariadb-git-0bea3a4a244a061b2ca4917b072ecfea356f6e3f.tar.gz
Merge dator5.(none):/home/pappa/clean-mysql-5.1-kt
into dator5.(none):/home/pappa/bug21210 sql/ha_partition.cc: Auto merged
Diffstat (limited to 'sql/ha_partition.cc')
-rw-r--r--sql/ha_partition.cc17
1 files changed, 16 insertions, 1 deletions
diff --git a/sql/ha_partition.cc b/sql/ha_partition.cc
index 0086c728b42..3cb855b1035 100644
--- a/sql/ha_partition.cc
+++ b/sql/ha_partition.cc
@@ -3663,7 +3663,10 @@ int ha_partition::read_range_first(const key_range *start_key,
if (!start_key) // Read first record
{
- m_index_scan_type= partition_index_first;
+ if (m_ordered)
+ m_index_scan_type= partition_index_first;
+ else
+ m_index_scan_type= partition_index_first_unordered;
error= common_first_last(m_rec0);
}
else
@@ -3877,6 +3880,18 @@ int ha_partition::handle_unordered_scan_next_partition(byte * buf)
DBUG_PRINT("info", ("index_first on partition %d", i));
error= file->index_first(buf);
break;
+ case partition_index_first_unordered:
+ /*
+ We perform a scan without sorting and this means that we
+ should not use the index_first since not all handlers
+ support it and it is also unnecessary to restrict sort
+ order.
+ */
+ DBUG_PRINT("info", ("read_range_first on partition %d", i));
+ table->record[0]= buf;
+ error= file->read_range_first(0, end_range, eq_range, 0);
+ table->record[0]= m_rec0;
+ break;
default:
DBUG_ASSERT(FALSE);
DBUG_RETURN(1);