mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.1-engines
into mysql.com:/home/svoj/devel/mysql/BUG30583/mysql-5.1-engines sql/ha_partition.cc: Auto merged
This commit is contained in:
commit
82e6e6fb66
3 changed files with 31 additions and 0 deletions
|
@ -129,3 +129,10 @@ insert into t1 (time, first_name, last_name) values ('2007-02-07', 'Q', 'Robert'
|
|||
SELECT * FROM t1 WHERE first_name='Andy' OR last_name='Jake';
|
||||
id time first_name last_name
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (a DOUBLE NOT NULL, KEY(a)) ENGINE=InnoDB
|
||||
PARTITION BY KEY(a) PARTITIONS 10;
|
||||
INSERT INTO t1 VALUES(1),(2);
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
2
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -134,3 +134,11 @@ SELECT * FROM t1 WHERE first_name='Andy' OR last_name='Jake';
|
|||
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# BUG#30583 - Partition on DOUBLE key + INNODB + count(*) == crash
|
||||
#
|
||||
CREATE TABLE t1 (a DOUBLE NOT NULL, KEY(a)) ENGINE=InnoDB
|
||||
PARTITION BY KEY(a) PARTITIONS 10;
|
||||
INSERT INTO t1 VALUES(1),(2);
|
||||
SELECT COUNT(*) FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -3381,6 +3381,22 @@ int ha_partition::index_init(uint inx, bool sorted)
|
|||
*/
|
||||
if (m_lock_type == F_WRLCK)
|
||||
bitmap_union(table->read_set, &m_part_info->full_part_field_set);
|
||||
else if (sorted && m_table_flags & HA_PARTIAL_COLUMN_READ)
|
||||
{
|
||||
/*
|
||||
An ordered scan is requested and necessary fields aren't in read_set.
|
||||
This may happen e.g. with SELECT COUNT(*) FROM t1. We must ensure
|
||||
that all fields of current key are included into read_set, as
|
||||
partitioning requires them for sorting
|
||||
(see ha_partition::handle_ordered_index_scan).
|
||||
|
||||
TODO: handle COUNT(*) queries via unordered scan.
|
||||
*/
|
||||
uint i;
|
||||
for (i= 0; i < m_curr_key_info->key_parts; i++)
|
||||
bitmap_set_bit(table->read_set,
|
||||
m_curr_key_info->key_part[i].field->field_index);
|
||||
}
|
||||
file= m_file;
|
||||
do
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue