diff options
author | unknown <mikael/pappa@dator5.(none)> | 2006-09-19 07:48:40 -0400 |
---|---|---|
committer | unknown <mikael/pappa@dator5.(none)> | 2006-09-19 07:48:40 -0400 |
commit | 0bea3a4a244a061b2ca4917b072ecfea356f6e3f (patch) | |
tree | ba736e8e3e73e15d027f8487f70aee233162f36d /sql/ha_partition.cc | |
parent | 0812a1f02e32cf77b0d48c0ec27e75719835d49a (diff) | |
parent | 392c3122f6d7931c39d66062acfe4ea265b4ba5c (diff) | |
download | mariadb-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.cc | 17 |
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); |