Commit 7586a4c6 authored by mattiasj@witty's avatar mattiasj@witty

Bug#35306: partition_basic_symlink test failures

Have changed the DATA/INDEX dir to not be a database dir.
(and made some changes for better result files.)
parent d7333511
...@@ -16,144 +16,29 @@ ...@@ -16,144 +16,29 @@
--enable_abort_on_error --enable_abort_on_error
--echo --echo
--echo #========================================================================
--echo # Check partitioning methods on just created tables
--echo # The tables should be defined without/with PRIMARY KEY and
--echo # UNIQUE INDEXes.
--echo # Every test round has to check
--echo # PARTITION BY HASH/KEY/LIST/RANGE
--echo # PARTITION BY RANGE/LIST ... SUBPARTITION BY HASH/KEY ...
--echo #========================================================================
--echo #------------------------------------------------------------------------
--echo # 1 Tables without PRIMARY KEY or UNIQUE INDEXes
--echo #------------------------------------------------------------------------
--echo # 1.1 The partitioning function contains one column.
let $unique= ;
--source suite/parts/inc/partition_methods1.inc
#
--echo # 1.1.1 with DATA DIECTORY/INDEX DIRECTORY
#
--disable_query_log
# DATA DIRECTORY
# Make directory for partition data
--exec mkdir $MYSQLTEST_VARDIR/master-data/test/data || true
eval SET @data_dir = 'DATA DIRECTORY =
''''$MYSQLTEST_VARDIR/master-data/test/data''''';
let $data_directory = `select @data_dir`;
#INDEX DIRECTORY
# Make directory for partition index
--exec mkdir $MYSQLTEST_VARDIR/master-data/test/index || true
eval SET @indx_dir = 'INDEX DIRECTORY =
''''$MYSQLTEST_VARDIR/master-data/test/index''''';
let $index_directory = `select @indx_dir`;
let $with_directories= 1;
--source suite/parts/inc/partition_methods1.inc
--source suite/parts/inc/partition_directory.inc
let $with_directories= 0;
--enable_query_log
#
--echo # 1.2 The partitioning function contains two columns.
let $unique= ; let $unique= ;
--source suite/parts/inc/partition_methods2.inc
#
--echo #------------------------------------------------------------------------
--echo # 2 Tables with PRIMARY KEY and/or UNIQUE INDEXes
--echo # The partitioning function contains one column.
--echo #------------------------------------------------------------------------
if ($more_pk_ui_tests)
{
if ($do_pk_tests)
{
--echo # 2.1 PRIMARY KEY consisting of one column
let $unique= , PRIMARY KEY(f_int1);
--source suite/parts/inc/partition_methods1.inc
}
--echo # 2.2 UNIQUE INDEX consisting of one column
let $unique= , UNIQUE INDEX uidx1 (f_int1);
--source suite/parts/inc/partition_methods1.inc
--echo # 2.2.1 with DATA DIECTORY/INDEX DIRECTORY
#
--disable_query_log
# DATA DIRECTORY
# Make directory for partition data
--exec mkdir $MYSQLTEST_VARDIR/master-data/test/data || true
eval SET @data_dir = 'DATA DIRECTORY =
''''$MYSQLTEST_VARDIR/master-data/test/data''''';
let $data_directory = `select @data_dir`;
#INDEX DIRECTORY # DATA DIRECTORY
# Make directory for partition index # Make directory for partition data
--exec mkdir $MYSQLTEST_VARDIR/master-data/test/index || true let $data_dir_path= $MYSQLTEST_VARDIR/mysql-test-data-dir;
eval SET @indx_dir = 'INDEX DIRECTORY = --mkdir $data_dir_path
''''$MYSQLTEST_VARDIR/master-data/test/index'''''; let $data_directory= DATA DIRECTORY = '$data_dir_path';
let $index_directory = `select @indx_dir`;
let $with_directories= TRUE; #INDEX DIRECTORY
--source suite/parts/inc/partition_methods1.inc # Make directory for partition index
let $with_directories= FALSE; let $idx_dir_path= $MYSQLTEST_VARDIR/mysql-test-idx-dir;
--enable_query_log --mkdir $idx_dir_path
# let $index_directory= INDEX DIRECTORY = '$idx_dir_path';
if ($do_pk_tests)
{
--echo # 2.3 PRIMARY KEY consisting of two columns
let $unique= , PRIMARY KEY(f_int1,f_int2);
--source suite/parts/inc/partition_methods1.inc
let $unique= , PRIMARY KEY(f_int2,f_int1);
--source suite/parts/inc/partition_methods1.inc
}
#
--echo # 2.4 UNIQUE INDEX consisting of two columns
let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2);
--source suite/parts/inc/partition_methods1.inc
let $unique= , UNIQUE INDEX uidx1 (f_int2,f_int1);
--source suite/parts/inc/partition_methods1.inc
#
}
--echo # 2.5 PRIMARY KEY + UNIQUE INDEX consisting of two columns
if ($do_pk_tests)
{
let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2), PRIMARY KEY(f_int2,f_int1);
--source suite/parts/inc/partition_methods1.inc
let $unique= , UNIQUE INDEX uidx1 (f_int2,f_int1), PRIMARY KEY(f_int1,f_int2);
--source suite/parts/inc/partition_methods1.inc
}
let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1);
--source suite/parts/inc/partition_methods1.inc
--echo #------------------------------------------------------------------------ let $with_directories= 1;
--echo # 3 Tables with PRIMARY KEY and/or UNIQUE INDEXes --echo #========================================================================
--echo # The partitioning function contains two columns. --echo # 0.5 use partition_basic with DATA/INDEX DIRECTORY
--echo #------------------------------------------------------------------------ --echo #========================================================================
# --source suite/parts/inc/partition_basic.inc
if ($more_pk_ui_tests) --echo #========================================================================
{ --echo # 5 use partition_directory with DATA/INDEX DIRECTORY
if ($do_pk_tests) --echo #========================================================================
{ --source suite/parts/inc/partition_directory.inc
--echo # 3.1 PRIMARY KEY consisting of two columns --rmdir $data_dir_path
let $unique= , PRIMARY KEY(f_int1,f_int2); --rmdir $idx_dir_path
--source suite/parts/inc/partition_methods2.inc let $with_directories= 0;
let $unique= , PRIMARY KEY(f_int2,f_int1);
--source suite/parts/inc/partition_methods2.inc
}
#
--echo # 3.2 UNIQUE INDEX consisting of two columns
let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2);
--source suite/parts/inc/partition_methods2.inc
let $unique= , UNIQUE INDEX uidx1 (f_int2,f_int1);
--source suite/parts/inc/partition_methods2.inc
}
#
--echo # 3.3 PRIMARY KEY and UNIQUE INDEX consisting of two columns
if ($do_pk_tests)
{
let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2), PRIMARY KEY(f_int2,f_int1);
--source suite/parts/inc/partition_methods2.inc
let $unique= , UNIQUE INDEX uidx1 (f_int2,f_int1), PRIMARY KEY(f_int1,f_int2);
--source suite/parts/inc/partition_methods2.inc
}
let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1);
--source suite/parts/inc/partition_methods2.inc
...@@ -29,41 +29,35 @@ let $partitioning= ; ...@@ -29,41 +29,35 @@ let $partitioning= ;
if ($with_partitioning) if ($with_partitioning)
{ {
let $partitioning= PARTITION BY HASH(f_int1) PARTITIONS 2; let $partitioning= PARTITION BY HASH(f_int1) PARTITIONS 2;
--disable_query_log
if ($with_directories) if ($with_directories)
{ {
eval SET @aux = let $partitioning=
'PARTITION BY HASH(f_int1) PARTITIONS 2 PARTITION BY HASH(f_int1) PARTITIONS 2
(PARTITION p1 (PARTITION p1
$index_directory, $index_directory,
PARTITION p2 PARTITION p2
$index_directory)'; $index_directory);
let $partitioning= `SELECT @aux`;
} }
} }
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 ( eval CREATE TABLE t1 (
$column_list $column_list
$unique $unique
) )
$partitioning; $partitioning;
--enable_query_log
eval $insert_all; eval $insert_all;
--source suite/parts/inc/partition_check.inc --source suite/parts/inc/partition_check.inc
DROP TABLE t1; DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc --source suite/parts/inc/partition_check_drop.inc
#----------- PARTITION BY KEY #----------- PARTITION BY KEY
--disable_query_log
if ($with_partitioning) if ($with_partitioning)
{ {
eval SET @aux = let $partitioning= PARTITION BY KEY(f_int1) PARTITIONS 5;
'PARTITION BY KEY(f_int1) PARTITIONS 5';
let $partitioning= `SELECT @aux`;
if ($with_directories) if ($with_directories)
{ {
--disable_query_log let $partitioning=
eval SET @aux = PARTITION BY HASH(f_int1) PARTITIONS 5
'PARTITION BY HASH(f_int1) PARTITIONS 5
(PARTITION p1 (PARTITION p1
$data_directory, $data_directory,
PARTITION p2 PARTITION p2
...@@ -73,27 +67,25 @@ $data_directory ...@@ -73,27 +67,25 @@ $data_directory
$index_directory, $index_directory,
PARTITION p4, PARTITION p4,
PARTITION p5 PARTITION p5
$index_directory)'; $index_directory);
let $partitioning= `SELECT @aux`;
} }
} }
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 ( eval CREATE TABLE t1 (
$column_list $column_list
$unique $unique
) )
$partitioning; $partitioning;
--enable_query_log
eval $insert_all; eval $insert_all;
--source suite/parts/inc/partition_check.inc --source suite/parts/inc/partition_check.inc
DROP TABLE t1; DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc --source suite/parts/inc/partition_check_drop.inc
#----------- PARTITION BY LIST #----------- PARTITION BY LIST
--disable_query_log
if ($with_partitioning) if ($with_partitioning)
{ {
eval SET @aux = let $partitioning=
'PARTITION BY LIST(MOD(f_int1,4)) PARTITION BY LIST(MOD(f_int1,4))
(PARTITION part_3 VALUES IN (-3) (PARTITION part_3 VALUES IN (-3)
$index_directory, $index_directory,
PARTITION part_2 VALUES IN (-2) PARTITION part_2 VALUES IN (-2)
...@@ -109,25 +101,23 @@ $index_directory, ...@@ -109,25 +101,23 @@ $index_directory,
PARTITION part2 VALUES IN (2) PARTITION part2 VALUES IN (2)
$data_directory, $data_directory,
PARTITION part3 VALUES IN (3) PARTITION part3 VALUES IN (3)
$data_directory $index_directory)'; $data_directory $index_directory);
let $partitioning= `SELECT @aux`;
} }
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 ( eval CREATE TABLE t1 (
$column_list $column_list
$unique $unique
) )
$partitioning; $partitioning;
--enable_query_log
eval $insert_all; eval $insert_all;
--source suite/parts/inc/partition_check.inc --source suite/parts/inc/partition_check.inc
DROP TABLE t1; DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc --source suite/parts/inc/partition_check_drop.inc
#----------- PARTITION BY RANGE #----------- PARTITION BY RANGE
--disable_query_log
if ($with_partitioning) if ($with_partitioning)
{ {
eval SET @aux = 'PARTITION BY RANGE(f_int1) let $partitioning= PARTITION BY RANGE(f_int1)
(PARTITION parta VALUES LESS THAN (0) (PARTITION parta VALUES LESS THAN (0)
$index_directory, $index_directory,
PARTITION partb VALUES LESS THAN ($max_row_div4) PARTITION partb VALUES LESS THAN ($max_row_div4)
...@@ -139,26 +129,24 @@ PARTITION partd VALUES LESS THAN ($max_row_div2 + $max_row_div4), ...@@ -139,26 +129,24 @@ PARTITION partd VALUES LESS THAN ($max_row_div2 + $max_row_div4),
PARTITION parte VALUES LESS THAN ($max_row) PARTITION parte VALUES LESS THAN ($max_row)
$data_directory, $data_directory,
PARTITION partf VALUES LESS THAN $MAX_VALUE PARTITION partf VALUES LESS THAN $MAX_VALUE
$index_directory)'; $index_directory);
let $partitioning= `SELECT @aux`;
} }
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 ( eval CREATE TABLE t1 (
$column_list $column_list
$unique $unique
) )
$partitioning; $partitioning;
--enable_query_log
eval $insert_all; eval $insert_all;
--source suite/parts/inc/partition_check.inc --source suite/parts/inc/partition_check.inc
DROP TABLE t1; DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc --source suite/parts/inc/partition_check_drop.inc
#----------- PARTITION BY RANGE -- SUBPARTITION BY HASH #----------- PARTITION BY RANGE -- SUBPARTITION BY HASH
--disable_query_log
if ($with_partitioning) if ($with_partitioning)
{ {
eval SET @aux = let $partitioning=
'PARTITION BY RANGE(f_int1 DIV 2) SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2 PARTITION BY RANGE(f_int1 DIV 2) SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2
(PARTITION parta VALUES LESS THAN (0) (PARTITION parta VALUES LESS THAN (0)
$index_directory, $index_directory,
PARTITION partb VALUES LESS THAN ($max_row_div4) PARTITION partb VALUES LESS THAN ($max_row_div4)
...@@ -166,25 +154,23 @@ $data_directory, ...@@ -166,25 +154,23 @@ $data_directory,
PARTITION partc VALUES LESS THAN ($max_row_div2), PARTITION partc VALUES LESS THAN ($max_row_div2),
PARTITION partd VALUES LESS THAN $MAX_VALUE PARTITION partd VALUES LESS THAN $MAX_VALUE
$data_directory $data_directory
$index_directory)'; $index_directory);
let $partitioning= `SELECT @aux`;
} }
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 ( eval CREATE TABLE t1 (
$column_list $column_list
$unique $unique
) )
$partitioning; $partitioning;
--enable_query_log
eval $insert_all; eval $insert_all;
--source suite/parts/inc/partition_check.inc --source suite/parts/inc/partition_check.inc
DROP TABLE t1; DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc --source suite/parts/inc/partition_check_drop.inc
#----------- PARTITION BY RANGE -- SUBPARTITION BY KEY #----------- PARTITION BY RANGE -- SUBPARTITION BY KEY
--disable_query_log
if ($with_partitioning) if ($with_partitioning)
{ {
eval SET @aux = 'PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int1) let $partitioning= PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int1)
(PARTITION part1 VALUES LESS THAN (0) (PARTITION part1 VALUES LESS THAN (0)
$data_directory $data_directory
(SUBPARTITION subpart11, SUBPARTITION subpart12), (SUBPARTITION subpart11, SUBPARTITION subpart12),
...@@ -196,26 +182,24 @@ $data_directory ...@@ -196,26 +182,24 @@ $data_directory
$index_directory $index_directory
(SUBPARTITION subpart31, SUBPARTITION subpart32), (SUBPARTITION subpart31, SUBPARTITION subpart32),
PARTITION part4 VALUES LESS THAN $MAX_VALUE PARTITION part4 VALUES LESS THAN $MAX_VALUE
(SUBPARTITION subpart41, SUBPARTITION subpart42))'; (SUBPARTITION subpart41, SUBPARTITION subpart42));
let $partitioning= `SELECT @aux`;
} }
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 ( eval CREATE TABLE t1 (
$column_list $column_list
$unique $unique
) )
$partitioning; $partitioning;
--enable_query_log
eval $insert_all; eval $insert_all;
--source suite/parts/inc/partition_check.inc --source suite/parts/inc/partition_check.inc
DROP TABLE t1; DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc --source suite/parts/inc/partition_check_drop.inc
#----------- PARTITION BY LIST -- SUBPARTITION BY HASH #----------- PARTITION BY LIST -- SUBPARTITION BY HASH
--disable_query_log
if ($with_partitioning) if ($with_partitioning)
{ {
eval SET @aux = let $partitioning=
'PARTITION BY LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY HASH(f_int1 + 1) PARTITION BY LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY HASH(f_int1 + 1)
(PARTITION part1 VALUES IN (0) (PARTITION part1 VALUES IN (0)
$index_directory $index_directory
(SUBPARTITION sp11 (SUBPARTITION sp11
...@@ -239,15 +223,14 @@ eval SET @aux = ...@@ -239,15 +223,14 @@ eval SET @aux =
$index_directory, $index_directory,
SUBPARTITION sp42 SUBPARTITION sp42
$data_directory $data_directory
$index_directory))'; $index_directory));
let $partitioning= `SELECT @aux`;
} }
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 ( eval CREATE TABLE t1 (
$column_list $column_list
$unique $unique
) )
$partitioning; $partitioning;
--enable_query_log
eval $insert_all; eval $insert_all;
--source suite/parts/inc/partition_check.inc --source suite/parts/inc/partition_check.inc
DROP TABLE t1; DROP TABLE t1;
......
...@@ -38,7 +38,8 @@ if ($do_file_tests) ...@@ -38,7 +38,8 @@ if ($do_file_tests)
--exec ls $MYSQLTEST_VARDIR/master-data/test/t1* > $MYSQLTEST_VARDIR/master-data/test/tmp2 2>&1 || true --exec ls $MYSQLTEST_VARDIR/master-data/test/t1* > $MYSQLTEST_VARDIR/master-data/test/tmp2 2>&1 || true
if ($with_directories) if ($with_directories)
{ {
--exec ls $MYSQLTEST_VARDIR/tmp/t1* >> $MYSQLTEST_VARDIR/master-data/test/tmp2 2>&1 || true --exec ls $MYSQLTEST_VARDIR/mysql-test-data-dir/t1* >> $MYSQLTEST_VARDIR/master-data/test/tmp2 2>&1 || true
--exec ls $MYSQLTEST_VARDIR/mysql-test-idx-dir/t1* >> $MYSQLTEST_VARDIR/master-data/test/tmp2 2>&1 || true
} }
eval SET @aux = CONCAT('load_file(''$MYSQLTEST_VARDIR','/master-data/test/tmp2'' eval SET @aux = CONCAT('load_file(''$MYSQLTEST_VARDIR','/master-data/test/tmp2''
)'); )');
......
...@@ -32,6 +32,11 @@ if ($do_file_tests) ...@@ -32,6 +32,11 @@ if ($do_file_tests)
{ {
# List the files belonging to the table t1 # List the files belonging to the table t1
--exec ls $MYSQLTEST_VARDIR/master-data/test/t1* > $MYSQLTEST_VARDIR/master-data/test/tmp2 2>&1 || true --exec ls $MYSQLTEST_VARDIR/master-data/test/t1* > $MYSQLTEST_VARDIR/master-data/test/tmp2 2>&1 || true
if ($with_directories)
{
--exec ls $MYSQLTEST_VARDIR/mysql-test-data-dir/t1* >> $MYSQLTEST_VARDIR/master-data/test/tmp2 2>&1 || true
--exec ls $MYSQLTEST_VARDIR/mysql-test-idx-dir/t1* >> $MYSQLTEST_VARDIR/master-data/test/tmp2 2>&1 || true
}
eval SET @aux = CONCAT('load_file(''$MYSQLTEST_VARDIR','/master-data/test/tmp2'')'); eval SET @aux = CONCAT('load_file(''$MYSQLTEST_VARDIR','/master-data/test/tmp2'')');
let $file_list= `SELECT @aux`; let $file_list= `SELECT @aux`;
} }
......
...@@ -44,42 +44,38 @@ let $partitioning= ; ...@@ -44,42 +44,38 @@ let $partitioning= ;
if ($with_partitioning) if ($with_partitioning)
{ {
let $partitioning= PARTITION BY HASH(f_int1) PARTITIONS 2; let $partitioning= PARTITION BY HASH(f_int1) PARTITIONS 2;
--disable_query_log
if ($with_directories) if ($with_directories)
{ {
eval SET @aux = let $partitioning=
'PARTITION BY HASH(f_int1) PARTITIONS 2 PARTITION BY HASH(f_int1) PARTITIONS 2
(PARTITION p1 (PARTITION p1
$data_directory $data_directory
$index_directory, $index_directory,
PARTITION p2 PARTITION p2
$data_directory $data_directory
$index_directory)'; $index_directory);
let $partitioning= `SELECT @aux`;
} }
} }
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 ( eval CREATE TABLE t1 (
$column_list $column_list
$unique $unique
) )
$partitioning; $partitioning;
--enable_query_log
eval $insert_all; eval $insert_all;
--source suite/parts/inc/partition_check.inc --source suite/parts/inc/partition_check.inc
DROP TABLE t1; DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc --source suite/parts/inc/partition_check_drop.inc
#----------- PARTITION BY KEY #----------- PARTITION BY KEY
--disable_query_log
if ($with_partitioning) if ($with_partitioning)
{ {
eval SET @aux = let $partitioning=
'PARTITION BY KEY(f_int1) PARTITIONS 5'; PARTITION BY KEY(f_int1) PARTITIONS 5;
let $partitioning= `SELECT @aux`;
if ($with_directories) if ($with_directories)
{ {
eval SET @aux = let $partitioning=
'PARTITION BY HASH(f_int1) PARTITIONS 5 PARTITION BY KEY(f_int1) PARTITIONS 5
(PARTITION p1 (PARTITION p1
$data_directory $data_directory
$index_directory, $index_directory,
...@@ -94,27 +90,37 @@ $data_directory ...@@ -94,27 +90,37 @@ $data_directory
$index_directory, $index_directory,
PARTITION p5 PARTITION p5
$data_directory $data_directory
$index_directory)'; $index_directory);
let $partitioning= `SELECT @aux`;
} }
} }
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 ( eval CREATE TABLE t1 (
$column_list $column_list
$unique $unique
) )
$partitioning; $partitioning;
--enable_query_log
eval $insert_all; eval $insert_all;
--source suite/parts/inc/partition_check.inc --source suite/parts/inc/partition_check.inc
DROP TABLE t1; DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc --source suite/parts/inc/partition_check_drop.inc
#----------- PARTITION BY LIST #----------- PARTITION BY LIST
--disable_query_log
if ($with_partitioning) if ($with_partitioning)
{ {
eval SET @aux = let $partitioning=
'PARTITION BY LIST(MOD(f_int1,4)) PARTITION BY LIST(MOD(f_int1,4))
(PARTITION part_3 VALUES IN (-3),
PARTITION part_2 VALUES IN (-2),
PARTITION part_1 VALUES IN (-1),
PARTITION part_N VALUES IN (NULL),
PARTITION part0 VALUES IN (0),
PARTITION part1 VALUES IN (1),
PARTITION part2 VALUES IN (2),
PARTITION part3 VALUES IN (3));
if ($with_directories)
{
let $partitioning=
PARTITION BY LIST(MOD(f_int1,4))
(PARTITION part_3 VALUES IN (-3) (PARTITION part_3 VALUES IN (-3)
$data_directory $index_directory, $data_directory $index_directory,
PARTITION part_2 VALUES IN (-2) PARTITION part_2 VALUES IN (-2)
...@@ -130,25 +136,33 @@ $data_directory $index_directory, ...@@ -130,25 +136,33 @@ $data_directory $index_directory,
PARTITION part2 VALUES IN (2) PARTITION part2 VALUES IN (2)
$data_directory $index_directory, $data_directory $index_directory,
PARTITION part3 VALUES IN (3) PARTITION part3 VALUES IN (3)
$data_directory $index_directory)'; $data_directory $index_directory);
let $partitioning= `SELECT @aux`; }
} }
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 ( eval CREATE TABLE t1 (
$column_list $column_list
$unique $unique
) )
$partitioning; $partitioning;
--enable_query_log
eval $insert_all; eval $insert_all;
--source suite/parts/inc/partition_check.inc --source suite/parts/inc/partition_check.inc
DROP TABLE t1; DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc --source suite/parts/inc/partition_check_drop.inc
#----------- PARTITION BY RANGE #----------- PARTITION BY RANGE
--disable_query_log
if ($with_partitioning) if ($with_partitioning)
{ {
eval SET @aux = 'PARTITION BY RANGE(f_int1) let $partitioning= PARTITION BY RANGE(f_int1)
(PARTITION parta VALUES LESS THAN (0),
PARTITION partb VALUES LESS THAN ($max_row_div4),
PARTITION partc VALUES LESS THAN ($max_row_div2),
PARTITION partd VALUES LESS THAN ($max_row_div2 + $max_row_div4),
PARTITION parte VALUES LESS THAN ($max_row),
PARTITION partf VALUES LESS THAN $MAX_VALUE);
if ($with_directories)
{
let $partitioning= PARTITION BY RANGE(f_int1)
(PARTITION parta VALUES LESS THAN (0) (PARTITION parta VALUES LESS THAN (0)
$data_directory $data_directory
$index_directory, $index_directory,
...@@ -166,26 +180,33 @@ $data_directory ...@@ -166,26 +180,33 @@ $data_directory
$index_directory, $index_directory,
PARTITION partf VALUES LESS THAN $MAX_VALUE PARTITION partf VALUES LESS THAN $MAX_VALUE
$data_directory $data_directory
$index_directory)'; $index_directory);
let $partitioning= `SELECT @aux`;
} }
}
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 ( eval CREATE TABLE t1 (
$column_list $column_list
$unique $unique
) )
$partitioning; $partitioning;
--enable_query_log
eval $insert_all; eval $insert_all;
--source suite/parts/inc/partition_check.inc --source suite/parts/inc/partition_check.inc
DROP TABLE t1; DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc --source suite/parts/inc/partition_check_drop.inc
#----------- PARTITION BY RANGE -- SUBPARTITION BY HASH #----------- PARTITION BY RANGE -- SUBPARTITION BY HASH
--disable_query_log
if ($with_partitioning) if ($with_partitioning)
{ {
eval SET @aux = let $partitioning=
'PARTITION BY RANGE(f_int1 DIV 2) SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2 PARTITION BY RANGE(f_int1 DIV 2) SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2
(PARTITION parta VALUES LESS THAN (0),
PARTITION partb VALUES LESS THAN ($max_row_div4),
PARTITION partc VALUES LESS THAN ($max_row_div2),
PARTITION partd VALUES LESS THAN $MAX_VALUE);
if ($with_directories)
{
let $partitioning=
PARTITION BY RANGE(f_int1 DIV 2) SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2
(PARTITION parta VALUES LESS THAN (0) (PARTITION parta VALUES LESS THAN (0)
$data_directory $data_directory
$index_directory, $index_directory,
...@@ -197,60 +218,81 @@ $data_directory ...@@ -197,60 +218,81 @@ $data_directory
$index_directory, $index_directory,
PARTITION partd VALUES LESS THAN $MAX_VALUE PARTITION partd VALUES LESS THAN $MAX_VALUE
$data_directory $data_directory
$index_directory)'; $index_directory);
let $partitioning= `SELECT @aux`; }
} }
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 ( eval CREATE TABLE t1 (
$column_list $column_list
$unique $unique
) )
$partitioning; $partitioning;
--enable_query_log
eval $insert_all; eval $insert_all;
--source suite/parts/inc/partition_check.inc --source suite/parts/inc/partition_check.inc
DROP TABLE t1; DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc --source suite/parts/inc/partition_check_drop.inc
#----------- PARTITION BY RANGE -- SUBPARTITION BY KEY #----------- PARTITION BY RANGE -- SUBPARTITION BY KEY
--disable_query_log
if ($with_partitioning) if ($with_partitioning)
{ {
eval SET @aux = 'PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int1) let $partitioning= PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int1)
(PARTITION part1 VALUES LESS THAN (0) (PARTITION part1 VALUES LESS THAN (0)
$data_directory
$index_directory
(SUBPARTITION subpart11, SUBPARTITION subpart12), (SUBPARTITION subpart11, SUBPARTITION subpart12),
PARTITION part2 VALUES LESS THAN ($max_row_div4) PARTITION part2 VALUES LESS THAN ($max_row_div4)
$data_directory
$index_directory
(SUBPARTITION subpart21, SUBPARTITION subpart22), (SUBPARTITION subpart21, SUBPARTITION subpart22),
PARTITION part3 VALUES LESS THAN ($max_row_div2) PARTITION part3 VALUES LESS THAN ($max_row_div2)
$data_directory
$index_directory
(SUBPARTITION subpart31, SUBPARTITION subpart32), (SUBPARTITION subpart31, SUBPARTITION subpart32),
PARTITION part4 VALUES LESS THAN $MAX_VALUE PARTITION part4 VALUES LESS THAN $MAX_VALUE
$data_directory (SUBPARTITION subpart41, SUBPARTITION subpart42));
$index_directory if ($with_directories)
(SUBPARTITION subpart41, SUBPARTITION subpart42))'; {
let $partitioning= `SELECT @aux`; let $partitioning= PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int1)
(PARTITION part1 VALUES LESS THAN (0)
(SUBPARTITION subpart11 $data_directory $index_directory,
SUBPARTITION subpart12 $data_directory $index_directory),
PARTITION part2 VALUES LESS THAN ($max_row_div4)
(SUBPARTITION subpart21 $data_directory $index_directory,
SUBPARTITION subpart22 $data_directory $index_directory),
PARTITION part3 VALUES LESS THAN ($max_row_div2)
(SUBPARTITION subpart31 $data_directory $index_directory,
SUBPARTITION subpart32 $data_directory $index_directory),
PARTITION part4 VALUES LESS THAN $MAX_VALUE
(SUBPARTITION subpart41 $data_directory $index_directory,
SUBPARTITION subpart42 $data_directory $index_directory));
} }
}
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 ( eval CREATE TABLE t1 (
$column_list $column_list
$unique $unique
) )
$partitioning; $partitioning;
--enable_query_log
eval $insert_all; eval $insert_all;
--source suite/parts/inc/partition_check.inc --source suite/parts/inc/partition_check.inc
DROP TABLE t1; DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc --source suite/parts/inc/partition_check_drop.inc
#----------- PARTITION BY LIST -- SUBPARTITION BY HASH #----------- PARTITION BY LIST -- SUBPARTITION BY HASH
--disable_query_log
if ($with_partitioning) if ($with_partitioning)
{ {
eval SET @aux = let $partitioning=
'PARTITION BY LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY HASH(f_int1 + 1) PARTITION BY LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY HASH(f_int1 + 1)
(PARTITION part1 VALUES IN (0)
(SUBPARTITION sp11,
SUBPARTITION sp12),
PARTITION part2 VALUES IN (1)
(SUBPARTITION sp21,
SUBPARTITION sp22),
PARTITION part3 VALUES IN (2)
(SUBPARTITION sp31,
SUBPARTITION sp32),
PARTITION part4 VALUES IN (NULL)
(SUBPARTITION sp41,
SUBPARTITION sp42));
if ($with_directories)
{
let $partitioning=
PARTITION BY LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY HASH(f_int1 + 1)
(PARTITION part1 VALUES IN (0) (PARTITION part1 VALUES IN (0)
$data_directory $data_directory
$index_directory $index_directory
...@@ -282,26 +324,33 @@ eval SET @aux = ...@@ -282,26 +324,33 @@ eval SET @aux =
$index_directory, $index_directory,
SUBPARTITION sp42 SUBPARTITION sp42
$data_directory $data_directory
$index_directory))'; $index_directory));
let $partitioning= `SELECT @aux`; }
} }
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 ( eval CREATE TABLE t1 (
$column_list $column_list
$unique $unique
) )
$partitioning; $partitioning;
--enable_query_log
eval $insert_all; eval $insert_all;
--source suite/parts/inc/partition_check.inc --source suite/parts/inc/partition_check.inc
DROP TABLE t1; DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc --source suite/parts/inc/partition_check_drop.inc
#----------- PARTITION BY LIST -- SUBPARTITION BY KEY #----------- PARTITION BY LIST -- SUBPARTITION BY KEY
--disable_query_log
if ($with_partitioning) if ($with_partitioning)
{ {
eval SET @aux = let $partitioning=
'PARTITION BY LIST(ABS(MOD(f_int1,2))) PARTITION BY LIST(ABS(MOD(f_int1,2)))
SUBPARTITION BY KEY(f_int1) SUBPARTITIONS $sub_part_no
(PARTITION part1 VALUES IN (0),
PARTITION part2 VALUES IN (1),
PARTITION part3 VALUES IN (NULL));
if ($with_directories)
{
let $partitioning=
PARTITION BY LIST(ABS(MOD(f_int1,2)))
SUBPARTITION BY KEY(f_int1) SUBPARTITIONS $sub_part_no SUBPARTITION BY KEY(f_int1) SUBPARTITIONS $sub_part_no
(PARTITION part1 VALUES IN (0) (PARTITION part1 VALUES IN (0)
$data_directory $data_directory
...@@ -311,17 +360,16 @@ SUBPARTITION BY KEY(f_int1) SUBPARTITIONS $sub_part_no ...@@ -311,17 +360,16 @@ SUBPARTITION BY KEY(f_int1) SUBPARTITIONS $sub_part_no
$index_directory, $index_directory,
PARTITION part3 VALUES IN (NULL) PARTITION part3 VALUES IN (NULL)
$data_directory $data_directory
$index_directory)'; $index_directory);
let $partitioning= `SELECT @aux`; }
} }
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 ( eval CREATE TABLE t1 (
$column_list $column_list
$unique $unique
) )
$partitioning; $partitioning;
--enable_query_log
eval $insert_all; eval $insert_all;
--source suite/parts/inc/partition_check.inc --source suite/parts/inc/partition_check.inc
DROP TABLE t1; DROP TABLE t1;
--source suite/parts/inc/partition_check_drop.inc --source suite/parts/inc/partition_check_drop.inc
let $with_directories= FALSE;
...@@ -43,7 +43,19 @@ let $partitioning= ; ...@@ -43,7 +43,19 @@ let $partitioning= ;
if ($with_partitioning) if ($with_partitioning)
{ {
let $partitioning= PARTITION BY HASH(f_int1 + f_int2) PARTITIONS 2; let $partitioning= PARTITION BY HASH(f_int1 + f_int2) PARTITIONS 2;
if ($with_directories)
{
let $partitioning=
PARTITION BY HASH(f_int1 + f_int2) PARTITIONS 2
(PARTITION p1
$data_directory
$index_directory,
PARTITION p2
$data_directory
$index_directory);
}
} }
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 ( eval CREATE TABLE t1 (
$column_list $column_list
$unique $unique
...@@ -57,7 +69,28 @@ DROP TABLE t1; ...@@ -57,7 +69,28 @@ DROP TABLE t1;
if ($with_partitioning) if ($with_partitioning)
{ {
let $partitioning= PARTITION BY KEY(f_int1,f_int2) PARTITIONS 5; let $partitioning= PARTITION BY KEY(f_int1,f_int2) PARTITIONS 5;
if ($with_directories)
{
let $partitioning=
PARTITION BY KEY(f_int1,f_int2) PARTITIONS 5
(PARTITION p1
$data_directory
$index_directory,
PARTITION p2
$data_directory
$index_directory,
PARTITION p3
$data_directory
$index_directory,
PARTITION p4
$data_directory
$index_directory,
PARTITION p5
$data_directory
$index_directory);
}
} }
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 ( eval CREATE TABLE t1 (
$column_list $column_list
$unique $unique
...@@ -79,7 +112,29 @@ let $partitioning= PARTITION BY LIST(MOD(f_int1 + f_int2,4)) ...@@ -79,7 +112,29 @@ let $partitioning= PARTITION BY LIST(MOD(f_int1 + f_int2,4))
PARTITION part1 VALUES IN (1), PARTITION part1 VALUES IN (1),
PARTITION part2 VALUES IN (2), PARTITION part2 VALUES IN (2),
PARTITION part3 VALUES IN (3)); PARTITION part3 VALUES IN (3));
if ($with_directories)
{
let $partitioning=
PARTITION BY LIST(MOD(f_int1 + f_int2,4))
(PARTITION part_3 VALUES IN (-3)
$data_directory $index_directory,
PARTITION part_2 VALUES IN (-2)
$data_directory $index_directory,
PARTITION part_1 VALUES IN (-1)
$data_directory $index_directory,
PARTITION part_N VALUES IN (NULL)
$data_directory $index_directory,
PARTITION part0 VALUES IN (0)
$data_directory $index_directory,
PARTITION part1 VALUES IN (1)
$data_directory $index_directory,
PARTITION part2 VALUES IN (2)
$data_directory $index_directory,
PARTITION part3 VALUES IN (3)
$data_directory $index_directory);
}
} }
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 ( eval CREATE TABLE t1 (
$column_list $column_list
$unique $unique
...@@ -92,17 +147,37 @@ DROP TABLE t1; ...@@ -92,17 +147,37 @@ DROP TABLE t1;
#----------- PARTITION BY RANGE #----------- PARTITION BY RANGE
if ($with_partitioning) if ($with_partitioning)
{ {
--disable_query_log let $partitioning= PARTITION BY RANGE((f_int1 + f_int2) DIV 2)
eval SET @aux = 'PARTITION BY RANGE((f_int1 + f_int2) DIV 2)
(PARTITION parta VALUES LESS THAN (0), (PARTITION parta VALUES LESS THAN (0),
PARTITION partb VALUES LESS THAN ($max_row_div4), PARTITION partb VALUES LESS THAN ($max_row_div4),
PARTITION partc VALUES LESS THAN ($max_row_div2), PARTITION partc VALUES LESS THAN ($max_row_div2),
PARTITION partd VALUES LESS THAN ($max_row_div2 + $max_row_div4), PARTITION partd VALUES LESS THAN ($max_row_div2 + $max_row_div4),
PARTITION parte VALUES LESS THAN ($max_row), PARTITION parte VALUES LESS THAN ($max_row),
PARTITION partf VALUES LESS THAN $MAX_VALUE)'; PARTITION partf VALUES LESS THAN $MAX_VALUE);
let $partitioning= `SELECT @aux`; if ($with_directories)
--enable_query_log {
let $partitioning= PARTITION BY RANGE((f_int1 + f_int2) DIV 2)
(PARTITION parta VALUES LESS THAN (0)
$data_directory
$index_directory,
PARTITION partb VALUES LESS THAN ($max_row_div4)
$data_directory
$index_directory,
PARTITION partc VALUES LESS THAN ($max_row_div2)
$data_directory
$index_directory,
PARTITION partd VALUES LESS THAN ($max_row_div2 + $max_row_div4)
$data_directory
$index_directory,
PARTITION parte VALUES LESS THAN ($max_row)
$data_directory
$index_directory,
PARTITION partf VALUES LESS THAN $MAX_VALUE
$data_directory
$index_directory);
} }
}
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 ( eval CREATE TABLE t1 (
$column_list $column_list
$unique $unique
...@@ -115,16 +190,31 @@ DROP TABLE t1; ...@@ -115,16 +190,31 @@ DROP TABLE t1;
#----------- PARTITION BY RANGE -- SUBPARTITION BY HASH #----------- PARTITION BY RANGE -- SUBPARTITION BY HASH
if ($with_partitioning) if ($with_partitioning)
{ {
--disable_query_log let $partitioning=
eval SET @aux = PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int2) SUBPARTITIONS 2
'PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int2) SUBPARTITIONS 2
(PARTITION parta VALUES LESS THAN (0), (PARTITION parta VALUES LESS THAN (0),
PARTITION partb VALUES LESS THAN ($max_row_div4), PARTITION partb VALUES LESS THAN ($max_row_div4),
PARTITION partc VALUES LESS THAN ($max_row_div2), PARTITION partc VALUES LESS THAN ($max_row_div2),
PARTITION partd VALUES LESS THAN $MAX_VALUE)'; PARTITION partd VALUES LESS THAN $MAX_VALUE);
let $partitioning= `SELECT @aux`; if ($with_directories)
--enable_query_log {
let $partitioning=
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int2) SUBPARTITIONS 2
(PARTITION parta VALUES LESS THAN (0)
$data_directory
$index_directory,
PARTITION partb VALUES LESS THAN ($max_row_div4)
$data_directory
$index_directory,
PARTITION partc VALUES LESS THAN ($max_row_div2)
$data_directory
$index_directory,
PARTITION partd VALUES LESS THAN $MAX_VALUE
$data_directory
$index_directory);
} }
}
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 ( eval CREATE TABLE t1 (
$column_list $column_list
$unique $unique
...@@ -137,8 +227,7 @@ DROP TABLE t1; ...@@ -137,8 +227,7 @@ DROP TABLE t1;
#----------- PARTITION BY RANGE -- SUBPARTITION BY KEY #----------- PARTITION BY RANGE -- SUBPARTITION BY KEY
if ($with_partitioning) if ($with_partitioning)
{ {
--disable_query_log let $partitioning= PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int2)
eval SET @aux = 'PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int2)
(PARTITION part1 VALUES LESS THAN (0) (PARTITION part1 VALUES LESS THAN (0)
(SUBPARTITION subpart11, SUBPARTITION subpart12), (SUBPARTITION subpart11, SUBPARTITION subpart12),
PARTITION part2 VALUES LESS THAN ($max_row_div4) PARTITION part2 VALUES LESS THAN ($max_row_div4)
...@@ -146,10 +235,25 @@ PARTITION part2 VALUES LESS THAN ($max_row_div4) ...@@ -146,10 +235,25 @@ PARTITION part2 VALUES LESS THAN ($max_row_div4)
PARTITION part3 VALUES LESS THAN ($max_row_div2) PARTITION part3 VALUES LESS THAN ($max_row_div2)
(SUBPARTITION subpart31, SUBPARTITION subpart32), (SUBPARTITION subpart31, SUBPARTITION subpart32),
PARTITION part4 VALUES LESS THAN $MAX_VALUE PARTITION part4 VALUES LESS THAN $MAX_VALUE
(SUBPARTITION subpart41, SUBPARTITION subpart42))'; (SUBPARTITION subpart41, SUBPARTITION subpart42));
let $partitioning= `SELECT @aux`; if ($with_directories)
--enable_query_log {
let $partitioning= PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int2)
(PARTITION part1 VALUES LESS THAN (0)
(SUBPARTITION subpart11 $data_directory $index_directory,
SUBPARTITION subpart12 $data_directory $index_directory),
PARTITION part2 VALUES LESS THAN ($max_row_div4)
(SUBPARTITION subpart21 $data_directory $index_directory,
SUBPARTITION subpart22 $data_directory $index_directory),
PARTITION part3 VALUES LESS THAN ($max_row_div2)
(SUBPARTITION subpart31 $data_directory $index_directory,
SUBPARTITION subpart32 $data_directory $index_directory),
PARTITION part4 VALUES LESS THAN $MAX_VALUE
(SUBPARTITION subpart41 $data_directory $index_directory,
SUBPARTITION subpart42 $data_directory $index_directory));
}
} }
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 ( eval CREATE TABLE t1 (
$column_list $column_list
$unique $unique
...@@ -171,7 +275,45 @@ let $partitioning= PARTITION BY LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY HASH(f_ ...@@ -171,7 +275,45 @@ let $partitioning= PARTITION BY LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY HASH(f_
(SUBPARTITION sp31, SUBPARTITION sp32), (SUBPARTITION sp31, SUBPARTITION sp32),
PARTITION part4 VALUES IN (NULL) PARTITION part4 VALUES IN (NULL)
(SUBPARTITION sp41, SUBPARTITION sp42)); (SUBPARTITION sp41, SUBPARTITION sp42));
if ($with_directories)
{
let $partitioning=
PARTITION BY LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY HASH(f_int2 + 1)
(PARTITION part1 VALUES IN (0)
$data_directory
$index_directory
(SUBPARTITION sp11
$data_directory
$index_directory,
SUBPARTITION sp12
$data_directory
$index_directory),
PARTITION part2 VALUES IN (1)
$data_directory
$index_directory
(SUBPARTITION sp21
$data_directory
$index_directory,
SUBPARTITION sp22
$data_directory
$index_directory),
PARTITION part3 VALUES IN (2)
$data_directory
$index_directory
(SUBPARTITION sp31,
SUBPARTITION sp32),
PARTITION part4 VALUES IN (NULL)
$data_directory
$index_directory
(SUBPARTITION sp41
$data_directory
$index_directory,
SUBPARTITION sp42
$data_directory
$index_directory));
} }
}
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 ( eval CREATE TABLE t1 (
$column_list $column_list
$unique $unique
...@@ -184,16 +326,29 @@ DROP TABLE t1; ...@@ -184,16 +326,29 @@ DROP TABLE t1;
#----------- PARTITION BY LIST -- SUBPARTITION BY KEY #----------- PARTITION BY LIST -- SUBPARTITION BY KEY
if ($with_partitioning) if ($with_partitioning)
{ {
--disable_query_log let $partitioning=
eval SET @aux = PARTITION BY LIST(ABS(MOD(f_int1,2)))
'PARTITION BY LIST(ABS(MOD(f_int1,2)))
SUBPARTITION BY KEY(f_int2) SUBPARTITIONS $sub_part_no SUBPARTITION BY KEY(f_int2) SUBPARTITIONS $sub_part_no
(PARTITION part1 VALUES IN (0), (PARTITION part1 VALUES IN (0),
PARTITION part2 VALUES IN (1), PARTITION part2 VALUES IN (1),
PARTITION part3 VALUES IN (NULL))'; PARTITION part3 VALUES IN (NULL));
let $partitioning= `SELECT @aux`; if ($with_directories)
--enable_query_log {
let $partitioning=
PARTITION BY LIST(ABS(MOD(f_int1,2)))
SUBPARTITION BY KEY(f_int2) SUBPARTITIONS $sub_part_no
(PARTITION part1 VALUES IN (0)
$data_directory
$index_directory,
PARTITION part2 VALUES IN (1)
$data_directory
$index_directory,
PARTITION part3 VALUES IN (NULL)
$data_directory
$index_directory);
}
} }
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 ( eval CREATE TABLE t1 (
$column_list $column_list
$unique $unique
......
...@@ -18,5 +18,3 @@ partition_value_ndb : cannot create t1 ...@@ -18,5 +18,3 @@ partition_value_ndb : cannot create t1
rpl_ndb_dd_partitions : cannot create t1 rpl_ndb_dd_partitions : cannot create t1
partition_alter4_myisam : Bug#20129 / WL#4176 partition_alter4_myisam : Bug#20129 / WL#4176
partition_alter4_innodb : Bug#20129 / WL#4176 partition_alter4_innodb : Bug#20129 / WL#4176
partition_basic_symlink_innodb : Bug#35306 Make pushbuild green
partition_basic_symlink_myisam : Bug#35306 Make pushbuild green
...@@ -51,8 +51,8 @@ let $more_pk_ui_tests= 0; ...@@ -51,8 +51,8 @@ let $more_pk_ui_tests= 0;
let $engine= 'InnoDB'; let $engine= 'InnoDB';
##### Execute the test of "table" files ##### Execute the test of "table" files
# InnoDB has no files per PK, UI, ... # InnoDB has no files per PK, UI, ... But only .frm file
let $do_file_tests= 0; let $do_file_tests= 1;
##### Execute PRIMARY KEY tests ##### ##### Execute PRIMARY KEY tests #####
# AFAIK InnoDB clusters the table around PRIMARY KEYs. # AFAIK InnoDB clusters the table around PRIMARY KEYs.
......
...@@ -48,9 +48,6 @@ let $more_pk_ui_tests= 0; ...@@ -48,9 +48,6 @@ let $more_pk_ui_tests= 0;
##### Storage engine to be tested ##### Storage engine to be tested
let $engine= 'MyISAM'; let $engine= 'MyISAM';
# The server uses in case of MyISAM symlinking (if available) and the expected
# results fit to symlinking support.
--source include/have_symlink.inc
##### Execute the test of "table" files ##### Execute the test of "table" files
# MyISAM has files per PK, UI, ... # MyISAM has files per PK, UI, ...
......
...@@ -11,8 +11,87 @@ ...@@ -11,8 +11,87 @@
# Change Author: mattiasj # # Change Author: mattiasj #
# Change Date: 2008-02-05 # # Change Date: 2008-02-05 #
# Change: copied it from partition_basic_innodb.test and kept DATA DIR # # Change: copied it from partition_basic_innodb.test and kept DATA DIR #
# Change Author: mattiasj #
# Change Date: 2008-03-16 #
# Change: Replaced all test with alter -> myisam, since innodb does not support#
# DATA/INDEX DIRECTORY #
################################################################################ ################################################################################
# NOTE: Until InnoDB supports DATA/INDEX DIR, test that a partitioned table
# remembers the DATA/INDEX DIR and it is used if altered to MyISAM
#
--echo # Will not run partition_basic_symlink on InnoDB, since it is the same
--echo # as partition_basic, since InnoDB does not support DATA/INDEX DIR
--echo # Will only verify that the DATA/INDEX DIR is stored and used if
--echo # ALTER to MyISAM.
--source include/have_innodb.inc
# The server must support partitioning.
--source include/have_partition.inc
# The server must support symlink for DATA/INDEX DIRECTORY.
--source include/have_symlink.inc
# windows does not support symlink for DATA/INDEX DIRECTORY.
--source include/not_windows.inc
--disable_warnings
DROP TABLE IF EXISTS t1;
--enable_warnings
--mkdir $MYSQLTEST_VARDIR/mysql-test-data-dir
--mkdir $MYSQLTEST_VARDIR/mysql-test-idx-dir
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
eval CREATE TABLE t1 (c1 INT)
ENGINE = InnoDB
PARTITION BY HASH (c1)
(PARTITION p0
DATA DIRECTORY = '$MYSQLTEST_VARDIR/mysql-test-data-dir'
INDEX DIRECTORY = '$MYSQLTEST_VARDIR/mysql-test-idx-dir',
PARTITION p1
DATA DIRECTORY = '$MYSQLTEST_VARDIR/mysql-test-data-dir'
INDEX DIRECTORY = '$MYSQLTEST_VARDIR/mysql-test-idx-dir'
);
--echo # Verifying .frm and .par files
--file_exists $MYSQLTEST_VARDIR/master-data/test/t1.frm
--file_exists $MYSQLTEST_VARDIR/master-data/test/t1.par
--echo # Verifying that there are no MyISAM files
--error 1
--file_exists $MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYD
--error 1
--file_exists $MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYI
--error 1
--file_exists $MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD
--error 1
--file_exists $MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI
--error 1
--file_exists $MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p0.MYD
--error 1
--file_exists $MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p0.MYI
--error 1
--file_exists $MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p1.MYD
--error 1
--file_exists $MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p1.MYI
FLUSH TABLES;
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
SHOW CREATE TABLE t1;
ALTER TABLE t1 ENGINE = MyISAM;
--echo # Verifying .frm, .par and MyISAM files (.MYD, MYI)
--file_exists $MYSQLTEST_VARDIR/master-data/test/t1.frm
--file_exists $MYSQLTEST_VARDIR/master-data/test/t1.par
--file_exists $MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYD
--file_exists $MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYI
--file_exists $MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD
--file_exists $MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI
--file_exists $MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p0.MYD
--file_exists $MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p0.MYI
--file_exists $MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p1.MYD
--file_exists $MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p1.MYI
FLUSH TABLES;
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
SHOW CREATE TABLE t1;
DROP TABLE t1;
--rmdir $MYSQLTEST_VARDIR/mysql-test-data-dir
--rmdir $MYSQLTEST_VARDIR/mysql-test-idx-dir
--exit
# here is the old test, which is tested by partition_basic_innodb
# #
# NOTE: PLEASE DO NOT ADD NOT INNODB SPECIFIC TESTCASES HERE ! # NOTE: PLEASE DO NOT ADD NOT INNODB SPECIFIC TESTCASES HERE !
# TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN # TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment