diff options
author | unknown <mikael/pappa@dator5.(none)> | 2006-07-15 03:38:34 -0400 |
---|---|---|
committer | unknown <mikael/pappa@dator5.(none)> | 2006-07-15 03:38:34 -0400 |
commit | dd7290571674e26cdd5f1be5304d15291517d6fa (patch) | |
tree | ede5cd0e0f036a508ee80dc255e3d3b8c7518a0c /sql/ha_partition.h | |
parent | 16c54768ba01d9138043ffa8b426b5d3bd14931b (diff) | |
download | mariadb-git-dd7290571674e26cdd5f1be5304d15291517d6fa.tar.gz |
BUG#20389: Crash when using index scan in reverse order
mysql-test/r/partition_order.result:
Changed a test case to handle ordered index scan reverse order as well
mysql-test/t/partition_order.test:
Changed a test case to handle ordered index scan reverse order as well
sql/ha_myisam.cc:
More debug info
sql/ha_partition.cc:
Introduced partition_index_read_last to ensure we use index_read_last in those
cases towards underlying handler.
Ensured that index_read with HA_READ_PREFIX_LAST, HA_READ_PREFIX_LAST_OR_PREV and
HA_READ_BEFORE_KEY uses ordered index scan in reverse order.
sql/ha_partition.h:
Introduced partition_index_read_last to ensure we use index_read_last in those
cases towards underlying handler.
Ensured that index_read with HA_READ_PREFIX_LAST, HA_READ_PREFIX_LAST_OR_PREV and
HA_READ_BEFORE_KEY uses ordered index scan in reverse order.
Diffstat (limited to 'sql/ha_partition.h')
-rw-r--r-- | sql/ha_partition.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sql/ha_partition.h b/sql/ha_partition.h index 4c627cd50f8..b838bc599f0 100644 --- a/sql/ha_partition.h +++ b/sql/ha_partition.h @@ -46,7 +46,8 @@ private: partition_index_read= 0, partition_index_first= 1, partition_index_last= 2, - partition_no_index_scan= 3 + partition_index_read_last= 3, + partition_no_index_scan= 4 }; /* Data for the partition handler */ int m_mode; // Open mode @@ -429,7 +430,7 @@ private: return (queue_buf(part_id) + PARTITION_BYTES_IN_POS); } - int handle_ordered_index_scan(byte * buf); + int handle_ordered_index_scan(byte * buf, bool reverse_order); int handle_ordered_next(byte * buf, bool next_same); int handle_ordered_prev(byte * buf); void return_top_record(byte * buf); |