diff options
author | Alexey Botchkov <holyfoot@askmonty.org> | 2018-01-29 11:01:14 +0400 |
---|---|---|
committer | Alexey Botchkov <holyfoot@askmonty.org> | 2018-01-29 11:01:14 +0400 |
commit | b4a2baffa82e5c07b96a1c752228560dcac1359b (patch) | |
tree | 5520b02f5c3bd21bf36f1fdf00a85dc9143c7fe5 /mysql-test/suite | |
parent | 041a32abcdd9791761a15d93e77ff2ea7dbc9d7c (diff) | |
download | mariadb-git-b4a2baffa82e5c07b96a1c752228560dcac1359b.tar.gz |
MDEV-11084 Select statement with partition selection against MyISAM table opens all partitions.
Now we don't open partitions if it was explicitly cpecified.
ha_partition::m_opened_partition bitmap added to track
partitions that were actually opened.
Diffstat (limited to 'mysql-test/suite')
-rw-r--r-- | mysql-test/suite/parts/r/partition_open.result | 8 | ||||
-rw-r--r-- | mysql-test/suite/parts/t/partition_open.test | 24 |
2 files changed, 32 insertions, 0 deletions
diff --git a/mysql-test/suite/parts/r/partition_open.result b/mysql-test/suite/parts/r/partition_open.result new file mode 100644 index 00000000000..98600d98ce3 --- /dev/null +++ b/mysql-test/suite/parts/r/partition_open.result @@ -0,0 +1,8 @@ +select * from t1 partition (p1); +x +300 +select * from t1 partition (p0); +ERROR HY000: Can't find file: './test/t1.MYI' (errno: 2 "No such file or directory") +drop table t1; +Warnings: +Warning 1017 Can't find file: './test/t1.MYI' (errno: 2 "No such file or directory") diff --git a/mysql-test/suite/parts/t/partition_open.test b/mysql-test/suite/parts/t/partition_open.test new file mode 100644 index 00000000000..de6873aacec --- /dev/null +++ b/mysql-test/suite/parts/t/partition_open.test @@ -0,0 +1,24 @@ +# +# MDEV-11084 Select statement with partition selection against MyISAM table opens all partitions. +# +--source include/have_partition.inc + +let $datadir=`select @@datadir`; + +# Table declared as having 2 partitions +# create table t1 (x int) egine=myisam +# partition by range columns (x) +# ( partition p0 values less than (100), partition p1 values less than (1000)); +# +# But we copy only second partition. So the 'p0' can't be opened. + +copy_file std_data/mdev11084.frm $datadir/test/t1.frm; +copy_file std_data/mdev11084.par $datadir/test/t1.par; +copy_file std_data/mdev11084.part1.MYD $datadir/test/t1#P#p1.MYD; +copy_file std_data/mdev11084.part1.MYI $datadir/test/t1#P#p1.MYI; +select * from t1 partition (p1); +--replace_result $datadir ./ +--error ER_FILE_NOT_FOUND +select * from t1 partition (p0); +--replace_result $datadir ./ +drop table t1; |