93 lines
2.5 KiB
Plaintext
93 lines
2.5 KiB
Plaintext
# Windows-specific partition tests
|
|
--source include/windows.inc
|
|
|
|
# These tests contain Windows specific directory/file format.
|
|
|
|
#
|
|
# Bug 25141: Crash Server on Partitioning command
|
|
#
|
|
# Bug#30459: Partitioning across disks failing on Windows
|
|
# updated this test, since symlinked files are not supported on Windows
|
|
# (not the same as symlinked directories that have a special hack
|
|
# on windows). This test is not dependent on have_symlink.
|
|
|
|
--echo # Get available drive letters on this host (must be at least two).
|
|
--perl
|
|
my @devices= `$ENV{'systemroot'}\\system32\\wbem\\wmic logicaldisk where drivetype=3 get name`;
|
|
# Element 0 is the string 'Name'.
|
|
(scalar @devices > 2) or die ("Too few devices");
|
|
|
|
# Set input separator to make chomp work, and trim white space.
|
|
local $/ = "\r\n";
|
|
chomp @devices;
|
|
s{^\s+|\s+$}{}g foreach @devices;
|
|
|
|
# Create tmp script to transfer into variables.
|
|
open(FILE, ">", "$ENV{'MYSQLTEST_VARDIR'}/tmp/devices.tmp") or die;
|
|
print FILE "--let base_1= $devices[1]/mysqltest\n";
|
|
print FILE "--let base_2= $devices[2]/mysqltest\n";
|
|
close FILE;
|
|
EOF
|
|
|
|
# Bring the names into variables by sourcing the generated script.
|
|
--source $MYSQLTEST_VARDIR/tmp/devices.tmp
|
|
|
|
# The tmp script is not needed anymore, delete it.
|
|
--remove_file $MYSQLTEST_VARDIR/tmp/devices.tmp
|
|
|
|
# Build paths.
|
|
--let $path_1= $base_1/p0Data
|
|
--let $path_2= $base_2/p2Data
|
|
--let $path_3= $base_2/p3Data
|
|
|
|
--echo # Create the target directories. This will fail e.g.
|
|
--echo # if the directories exist already.
|
|
--mkdir $base_1
|
|
--mkdir $base_2
|
|
--mkdir $path_1
|
|
--mkdir $path_2
|
|
--mkdir $path_3
|
|
|
|
--replace_result $path_1 PATH_1 $path_2 PATH_2
|
|
eval
|
|
CREATE TABLE t1 (
|
|
c1 int unsigned NOT NULL AUTO_INCREMENT,
|
|
c2 varchar(30) NOT NULL,
|
|
c3 smallint unsigned DEFAULT NULL,
|
|
PRIMARY KEY (c1)
|
|
)
|
|
PARTITION BY HASH(c1)(
|
|
PARTITION p0
|
|
DATA DIRECTORY = '$path_1',
|
|
PARTITION p1,
|
|
PARTITION p2
|
|
DATA DIRECTORY = '$path_2'
|
|
);
|
|
|
|
INSERT INTO t1 VALUES (NULL, "first", 1);
|
|
INSERT INTO t1 VALUES (NULL, "second", 2);
|
|
INSERT INTO t1 VALUES (NULL, "third", 3);
|
|
|
|
--replace_result $path_1 PATH_1 $path_2 PATH_2
|
|
SHOW CREATE TABLE t1;
|
|
|
|
--replace_result $path_3 PATH_3
|
|
eval ALTER TABLE t1 ADD PARTITION (PARTITION p3 DATA DIRECTORY = '$path_3');
|
|
INSERT INTO t1 VALUES (NULL, "last", 4);
|
|
|
|
--replace_result $path_1 PATH_1 $path_2 PATH_2 $path_3 PATH_3
|
|
SHOW CREATE TABLE t1;
|
|
DROP TABLE t1;
|
|
|
|
--echo # Clean up: Delete target directories.
|
|
--rmdir $path_1\test
|
|
--rmdir $path_2\test
|
|
--rmdir $path_3\test
|
|
|
|
--rmdir $path_1
|
|
--rmdir $path_2
|
|
--rmdir $path_3
|
|
|
|
--rmdir $base_1
|
|
--rmdir $base_2
|