Description:
When running the parts suite on windows, parts.partition_alter3_innodb fails, due to missing 'rm' command.
parts.partition_alter3_innodb [ fail ]
'rm' is not recognized as an internal or external command,
operable program or batch file.
'true' is not recognized as an internal or external command,
operable program or batch file.
mysqltest: In included file ".\suite\parts\inc\partition_check_drop.inc": At lin
e 62: command "rm -f $MYSQLTEST_VARDIR/master-data/test/t1* || true" failed
The result from queries just before the failure was:
< snip >
`f_date` date DEFAULT NULL,
`f_varchar` varchar(30) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
t1.frm
EXPLAIN PARTITIONS SELECT COUNT(*) FROM t1 WHERE f_date = '1000-02-10';
id select_type table partitions type possible_keys key
key_len ref rows Extra
1 SIMPLE t1 NULL ALL NULL NULL NULL NULL 20
Using where
# check read single success: 1
# check read all success: 1
# check read row by row success: 1
# 1.2.7 Remove partitioning from not partitioned table --> ????
ALTER TABLE t1 REMOVE PARTITIONING;
DROP TABLE t1;
# Attention: There are unused files.
# Either the DROP TABLE or a preceding ALTER TABLE
# <alter partitioning> worked incomplete.
# We found:
unified filelist
--- not determined ---
exec of 'rm -f E:/mysql_from_pb2/bugteam/mysql-5.1.31-patched/mysql-test/var/mas
ter-data/test/t1* || true' failed, error: 1, status: 1, errno: 2
More results from queries before failure can be found in E:\mysql_from_pb2\bugte
am\mysql-5.1.31-patched\mysql-test\var\log\partition_alter3_innodb.log
Stopping All Servers
Restoring snapshot of databases
Resuming Tests
How to repeat:
run parts.partition_alter3_innodb on windows (where the 'rm' command is not installed).
Suggested fix:
Restructure mysql-test/suite/parts/inc/partition_check_drop.inc (see below, remove the 'if ($ls)' for printing out garbage files and make it depend on '$do_file_tests' instead. This should cause the test to fail if any non approved garbage file is left, and then one can rely on the test framework to clean up.
=== modified file 'mysql-test/suite/parts/inc/partition_check_drop.inc'
--- mysql-test/suite/parts/inc/partition_check_drop.inc 2008-07-09 11:19:04 +0000
+++ mysql-test/suite/parts/inc/partition_check_drop.inc 2008-11-13 22:01:48 +0000
@@ -29,11 +29,6 @@
--list_files_append_file $ls_file $MYSQLTEST_VARDIR/tmp t1*
}
eval SET @aux = load_file('$ls_file');
-}
-if (!$do_file_tests)
-{
-SET @aux = '--- not determined ---';
-}
# UPDATE the current filelist of the table t1 within t0_definition
# Note: This list should be empty, because the table t1 was dropped !
@@ -46,23 +41,21 @@
if ($found_garbage)
{
# Unfortunately the DROP TABLE did not remove the unused files
- if ($ls)
- {
- --echo # Attention: There are unused files.
- --echo # Either the DROP TABLE or a preceding ALTER TABLE
- --echo # <alter partitioning> worked incomplete.
- --echo # We found:
- # Print the list of files into the protocol
- eval SELECT REPLACE(file_list,'$MYSQLTEST_VARDIR','\$MYSQLTEST_VARDIR')
- AS "unified filelist"
- FROM t0_definition WHERE state = 'old';
- }
- # Do a manual cleanup, because the following tests should not suffer from
- # remaining files
- --exec rm -f $MYSQLTEST_VARDIR/master-data/test/t1* || true
- if ($with_directories)
- {
- --exec rm -f $MYSQLTEST_VARDIR/tmp/t1* || true
- }
+ --echo # Attention: There are unused files.
+ --echo # Either the DROP TABLE or a preceding ALTER TABLE
+ --echo # <alter partitioning> worked incomplete.
+ --echo # We found:
+ # Print the list of files into the protocol
+ eval SELECT REPLACE(file_list,'$MYSQLTEST_VARDIR','\$MYSQLTEST_VARDIR')
+ AS "unified filelist"
+ FROM t0_definition WHERE state = 'old';
+ # No manual cleanup, because the framework should clean up since we fail.
+}
+}
+if (!$do_file_tests)
+{
+INSERT INTO t0_definition
+ SET state = 'old', file_list = '--- not determined ---'
+ON DUPLICATE KEY UPDATE file_list = '--- not determined ---';
}
--enable_query_log
=== modified file 'mysql-test/suite/parts/r/partition_alter3_innodb.result'
--- mysql-test/suite/parts/r/partition_alter3_innodb.result 2008-11-04 07:43:21 +0000
+++ mysql-test/suite/parts/r/partition_alter3_innodb.result 2008-11-13 21:56:37 +0000
@@ -368,12 +368,6 @@
# 1.2.7 Remove partitioning from not partitioned table --> ????
ALTER TABLE t1 REMOVE PARTITIONING;
DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
#========================================================================
# 2. Partition management commands on KEY partitioned table
@@ -701,12 +695,6 @@
# 2.2.7 Remove partitioning from not partitioned table --> ????
ALTER TABLE t1 REMOVE PARTITIONING;
DROP TABLE t1;
-# Attention: There are unused files.
-# Either the DROP TABLE or a preceding ALTER TABLE
-# <alter partitioning> worked incomplete.
-# We found:
-unified filelist
---- not determined ---
DROP VIEW IF EXISTS v1;
DROP TABLE IF EXISTS t1;
DROP TABLE IF EXISTS t0_aux;