From: Martin Zaun Date: February 22 2011 1:17am Subject: bzr commit into mysql-5.1-telco-6.3 branch (martin.zaun:3392) List-Archive: http://lists.mysql.com/commits/131824 Message-Id: <201102220118.p1M1I6w3001422@rcsinet15.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============6013656493697925402==" --===============6013656493697925402== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///Users/mz/mysql/ndb-6.3/ based on revid:martin.zaun@stripped 3392 Martin Zaun 2011-02-21 [merge] merge from ndb-6.3-ndb_restore-test-cleanup to ndb-6.3 added: mysql-test/suite/ndb/r/ndb_restore_schema_tolerance.result mysql-test/suite/ndb/t/ndb_restore_schema_tolerance.test renamed: mysql-test/suite/ndb/r/ndb_blob_restore.result => mysql-test/suite/ndb/r/ndb_restore_schema_blobs.result mysql-test/suite/ndb/r/ndb_restore.result => mysql-test/suite/ndb/r/ndb_restore_misc.result mysql-test/suite/ndb/r/ndb_restore_compat.result => mysql-test/suite/ndb/r/ndb_restore_compat_downward.result mysql-test/suite/ndb/r/ndb_restore_different_endian_data.result => mysql-test/suite/ndb/r/ndb_restore_compat_endianness.result mysql-test/suite/ndb/r/ndb_restore_lossy_charbinary_conv.result => mysql-test/suite/ndb/r/ndb_restore_conv_lossy_charbinary.result mysql-test/suite/ndb/r/ndb_restore_lossy_integral_conv.result => mysql-test/suite/ndb/r/ndb_restore_conv_lossy_integral.result mysql-test/suite/ndb/r/ndb_restore_options.result => mysql-test/suite/ndb/r/ndb_restore_schema_subsets.result mysql-test/suite/ndb/r/ndb_restore_padding_preservation.result => mysql-test/suite/ndb/r/ndb_restore_conv_padding.result mysql-test/suite/ndb/r/ndb_restore_partition.result => mysql-test/suite/ndb/r/ndb_restore_schema_partitions.result mysql-test/suite/ndb/r/ndb_restore_promotion.result => mysql-test/suite/ndb/r/ndb_restore_conv_promotion.result mysql-test/suite/ndb/r/ndb_restore_rewrite_db.result => mysql-test/suite/ndb/r/ndb_restore_schema_rewrites.result mysql-test/suite/ndb/t/ndb_blob_restore.test => mysql-test/suite/ndb/t/ndb_restore_schema_blobs.test mysql-test/suite/ndb/t/ndb_restore.test => mysql-test/suite/ndb/t/ndb_restore_misc.test mysql-test/suite/ndb/t/ndb_restore_compat.test => mysql-test/suite/ndb/t/ndb_restore_compat_downward.test mysql-test/suite/ndb/t/ndb_restore_compressed-master.opt => mysql-test/suite/ndb/t/ndb_restore_compat_compression-master.opt mysql-test/suite/ndb/t/ndb_restore_compressed.test => mysql-test/suite/ndb/t/ndb_restore_compat_compression.test mysql-test/suite/ndb/t/ndb_restore_different_endian_data.test => mysql-test/suite/ndb/t/ndb_restore_compat_endianness.test mysql-test/suite/ndb/t/ndb_restore_lossy_charbinary_conv.test => mysql-test/suite/ndb/t/ndb_restore_conv_lossy_charbinary.test mysql-test/suite/ndb/t/ndb_restore_lossy_integral_conv.test => mysql-test/suite/ndb/t/ndb_restore_conv_lossy_integral.test mysql-test/suite/ndb/t/ndb_restore_options.test => mysql-test/suite/ndb/t/ndb_restore_schema_subsets.test mysql-test/suite/ndb/t/ndb_restore_padding_preservation.test => mysql-test/suite/ndb/t/ndb_restore_conv_padding.test mysql-test/suite/ndb/t/ndb_restore_partition.test => mysql-test/suite/ndb/t/ndb_restore_schema_partitions.test mysql-test/suite/ndb/t/ndb_restore_promotion.test => mysql-test/suite/ndb/t/ndb_restore_conv_promotion.test mysql-test/suite/ndb/t/ndb_restore_rewrite_db.test => mysql-test/suite/ndb/t/ndb_restore_schema_rewrites.test modified: mysql-test/suite/ndb/t/ndb_restore_print.test mysql-test/suite/ndb/r/ndb_restore_schema_subsets.result mysql-test/suite/ndb/t/ndb_restore_schema_blobs.test mysql-test/suite/ndb/t/ndb_restore_misc.test mysql-test/suite/ndb/t/ndb_restore_compat_downward.test mysql-test/suite/ndb/t/ndb_restore_compat_compression-master.opt mysql-test/suite/ndb/t/ndb_restore_compat_compression.test mysql-test/suite/ndb/t/ndb_restore_compat_endianness.test mysql-test/suite/ndb/t/ndb_restore_conv_lossy_charbinary.test mysql-test/suite/ndb/t/ndb_restore_conv_lossy_integral.test mysql-test/suite/ndb/t/ndb_restore_schema_subsets.test mysql-test/suite/ndb/t/ndb_restore_conv_padding.test mysql-test/suite/ndb/t/ndb_restore_schema_partitions.test mysql-test/suite/ndb/t/ndb_restore_conv_promotion.test mysql-test/suite/ndb/t/ndb_restore_schema_rewrites.test === renamed file 'mysql-test/suite/ndb/r/ndb_restore_compat.result' => 'mysql-test/suite/ndb/r/ndb_restore_compat_downward.result' === renamed file 'mysql-test/suite/ndb/r/ndb_restore_different_endian_data.result' => 'mysql-test/suite/ndb/r/ndb_restore_compat_endianness.result' === renamed file 'mysql-test/suite/ndb/r/ndb_restore_lossy_charbinary_conv.result' => 'mysql-test/suite/ndb/r/ndb_restore_conv_lossy_charbinary.result' === renamed file 'mysql-test/suite/ndb/r/ndb_restore_lossy_integral_conv.result' => 'mysql-test/suite/ndb/r/ndb_restore_conv_lossy_integral.result' === renamed file 'mysql-test/suite/ndb/r/ndb_restore_padding_preservation.result' => 'mysql-test/suite/ndb/r/ndb_restore_conv_padding.result' === renamed file 'mysql-test/suite/ndb/r/ndb_restore_promotion.result' => 'mysql-test/suite/ndb/r/ndb_restore_conv_promotion.result' === renamed file 'mysql-test/suite/ndb/r/ndb_restore.result' => 'mysql-test/suite/ndb/r/ndb_restore_misc.result' === renamed file 'mysql-test/suite/ndb/r/ndb_blob_restore.result' => 'mysql-test/suite/ndb/r/ndb_restore_schema_blobs.result' === renamed file 'mysql-test/suite/ndb/r/ndb_restore_partition.result' => 'mysql-test/suite/ndb/r/ndb_restore_schema_partitions.result' === renamed file 'mysql-test/suite/ndb/r/ndb_restore_rewrite_db.result' => 'mysql-test/suite/ndb/r/ndb_restore_schema_rewrites.result' === renamed file 'mysql-test/suite/ndb/r/ndb_restore_options.result' => 'mysql-test/suite/ndb/r/ndb_restore_schema_subsets.result' --- a/mysql-test/suite/ndb/r/ndb_restore_options.result 2010-06-11 19:40:45 +0000 +++ b/mysql-test/suite/ndb/r/ndb_restore_schema_subsets.result 2011-02-22 01:15:42 +0000 @@ -518,171 +518,3 @@ tab2 drop table db2.tab1, db2.tab2; drop database db1; drop database db2; -Test ndb_restore ability to ignore some schema differences -use test; -create table t1 ( -a int, -b int, -c int, -d int, -e varchar(200), -f int, -g char(20), -h text, -i int, -primary key(a,b)) TABLESPACE ts1 engine = ndb; -insert into t1 values -(1, 1, 1, 1, '1', 1, 'Rankin', 'Rebus', 1), -(2, 2, 2, 2, '2', 2, 'Doyle', 'Holmes', 2), -(3, 3, 3, 3, '3', 3, 'Burns', 'Mouse', 3), -(4, 4, 4, 4, '4', 4, 'Gibbon', 'Chris', 4), -(5, 5, 5, 5, '5', 5, 'Gray', 'Lanark', 5); -select * from t1 order by a; -a b c d e f g h i -1 1 1 1 1 1 Rankin Rebus 1 -2 2 2 2 2 2 Doyle Holmes 2 -3 3 3 3 3 3 Burns Mouse 3 -4 4 4 4 4 4 Gibbon Chris 4 -5 5 5 5 5 5 Gray Lanark 5 -Backing up data -drop table t1; -Normal restore -show create table t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `a` int(11) NOT NULL DEFAULT '0', - `b` int(11) NOT NULL DEFAULT '0', - `c` int(11) DEFAULT NULL, - `d` int(11) DEFAULT NULL, - `e` varchar(200) DEFAULT NULL, - `f` int(11) DEFAULT NULL, - `g` char(20) DEFAULT NULL, - `h` text, - `i` int(11) DEFAULT NULL, - PRIMARY KEY (`a`,`b`) -) /*!50100 TABLESPACE ts1 */ ENGINE=ndbcluster DEFAULT CHARSET=latin1 -select * from t1 order by a; -a b c d e f g h i -1 1 1 1 1 1 Rankin Rebus 1 -2 2 2 2 2 2 Doyle Holmes 2 -3 3 3 3 3 3 Burns Mouse 3 -4 4 4 4 4 4 Gibbon Chris 4 -5 5 5 5 5 5 Gray Lanark 5 -truncate t1; -Column name change, should fail without --exclude-missing-columns -alter table t1 change c cc int; -Retry with --exclude-missing-columns -select * from t1 order by a; -a b cc d e f g h i -1 1 NULL 1 1 1 Rankin Rebus 1 -2 2 NULL 2 2 2 Doyle Holmes 2 -3 3 NULL 3 3 3 Burns Mouse 3 -4 4 NULL 4 4 4 Gibbon Chris 4 -5 5 NULL 5 5 5 Gray Lanark 5 -truncate t1; -Column type change, should fail -alter table t1 change cc c bigint; -show create table t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `a` int(11) NOT NULL DEFAULT '0', - `b` int(11) NOT NULL DEFAULT '0', - `c` bigint(20) DEFAULT NULL, - `d` int(11) DEFAULT NULL, - `e` varchar(200) DEFAULT NULL, - `f` int(11) DEFAULT NULL, - `g` char(20) DEFAULT NULL, - `h` text, - `i` int(11) DEFAULT NULL, - PRIMARY KEY (`a`,`b`) -) /*!50100 TABLESPACE ts1 */ ENGINE=ndbcluster DEFAULT CHARSET=latin1 -Retry with --promote-attribute -select * from t1 order by a; -a b c d e f g h i -1 1 1 1 1 1 Rankin Rebus 1 -2 2 2 2 2 2 Doyle Holmes 2 -3 3 3 3 3 3 Burns Mouse 3 -4 4 4 4 4 4 Gibbon Chris 4 -5 5 5 5 5 5 Gray Lanark 5 -truncate t1; -Column nullability change, should fail -alter table t1 change c c int not null; -alter table t1 change c c int; -Column length change, should fail -alter table t1 change g g char(22); -Character set difference, should fail -alter table t1 change g g char(20) character set binary; -alter table t1 change g g char(20); -AutoIncrement difference, should fail -alter table t1 change b b int auto_increment; -alter table t1 change b b int; -ArrayType difference, should fail -alter table t1 change e e varchar(300); -alter table t1 change e e varchar(200); -StorageType difference, should pass -CREATE LOGFILE GROUP lg1 -ADD UNDOFILE 'undofile.dat' -INITIAL_SIZE 16M -UNDO_BUFFER_SIZE = 1M -ENGINE=NDB; -CREATE TABLESPACE ts1 -ADD DATAFILE 'datafile.dat' -USE LOGFILE GROUP lg1 -INITIAL_SIZE 12M -ENGINE NDB; -alter table t1 change i i int storage disk; -select * from t1 order by a; -a b c d e f g h i -1 1 1 1 1 1 Rankin Rebus 1 -2 2 2 2 2 2 Doyle Holmes 2 -3 3 3 3 3 3 Burns Mouse 3 -4 4 4 4 4 4 Gibbon Chris 4 -5 5 5 5 5 5 Gray Lanark 5 -alter table t1 change i i int storage memory; -truncate t1; -Dynamic property difference, should pass -alter table t1 change c c int column_format dynamic; -select * from t1 order by a; -a b c d e f g h i -1 1 1 1 1 1 Rankin Rebus 1 -2 2 2 2 2 2 Doyle Holmes 2 -3 3 3 3 3 3 Burns Mouse 3 -4 4 4 4 4 4 Gibbon Chris 4 -5 5 5 5 5 5 Gray Lanark 5 -drop table t1; -alter tablespace ts1 drop datafile 'datafile.dat' engine=ndb; -drop tablespace ts1 engine=ndb; -drop logfile group lg1 engine=ndb; -Different PK columns, should fail -create table t1 ( -a int, -b int, -c int, -d int, -e varchar(200), -f int, -g char(20), -h text, -i int, -primary key (a)) TABLESPACE ts1 engine = ndb; -drop table t1; -Different distribution keys, should pass -create table t1 ( -a int, -b int, -c int, -d int, -e varchar(200), -f int, -g char(20), -h text, -i int, -primary key(a,b)) TABLESPACE ts1 engine = ndb partition by key(a); -select * from t1 order by a; -a b c d e f g h i -1 1 1 1 1 1 Rankin Rebus 1 -2 2 2 2 2 2 Doyle Holmes 2 -3 3 3 3 3 3 Burns Mouse 3 -4 4 4 4 4 4 Gibbon Chris 4 -5 5 5 5 5 5 Gray Lanark 5 -drop table t1; === added file 'mysql-test/suite/ndb/r/ndb_restore_schema_tolerance.result' --- a/mysql-test/suite/ndb/r/ndb_restore_schema_tolerance.result 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/ndb/r/ndb_restore_schema_tolerance.result 2011-02-22 01:15:42 +0000 @@ -0,0 +1,168 @@ +Test ndb_restore ability to ignore some schema differences +use test; +create table t1 ( +a int, +b int, +c int, +d int, +e varchar(200), +f int, +g char(20), +h text, +i int, +primary key(a,b)) TABLESPACE ts1 engine = ndb; +insert into t1 values +(1, 1, 1, 1, '1', 1, 'Rankin', 'Rebus', 1), +(2, 2, 2, 2, '2', 2, 'Doyle', 'Holmes', 2), +(3, 3, 3, 3, '3', 3, 'Burns', 'Mouse', 3), +(4, 4, 4, 4, '4', 4, 'Gibbon', 'Chris', 4), +(5, 5, 5, 5, '5', 5, 'Gray', 'Lanark', 5); +select * from t1 order by a; +a b c d e f g h i +1 1 1 1 1 1 Rankin Rebus 1 +2 2 2 2 2 2 Doyle Holmes 2 +3 3 3 3 3 3 Burns Mouse 3 +4 4 4 4 4 4 Gibbon Chris 4 +5 5 5 5 5 5 Gray Lanark 5 +Backing up data +drop table t1; +Normal restore +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) NOT NULL DEFAULT '0', + `b` int(11) NOT NULL DEFAULT '0', + `c` int(11) DEFAULT NULL, + `d` int(11) DEFAULT NULL, + `e` varchar(200) DEFAULT NULL, + `f` int(11) DEFAULT NULL, + `g` char(20) DEFAULT NULL, + `h` text, + `i` int(11) DEFAULT NULL, + PRIMARY KEY (`a`,`b`) +) /*!50100 TABLESPACE ts1 */ ENGINE=ndbcluster DEFAULT CHARSET=latin1 +select * from t1 order by a; +a b c d e f g h i +1 1 1 1 1 1 Rankin Rebus 1 +2 2 2 2 2 2 Doyle Holmes 2 +3 3 3 3 3 3 Burns Mouse 3 +4 4 4 4 4 4 Gibbon Chris 4 +5 5 5 5 5 5 Gray Lanark 5 +truncate t1; +Column name change, should fail without --exclude-missing-columns +alter table t1 change c cc int; +Retry with --exclude-missing-columns +select * from t1 order by a; +a b cc d e f g h i +1 1 NULL 1 1 1 Rankin Rebus 1 +2 2 NULL 2 2 2 Doyle Holmes 2 +3 3 NULL 3 3 3 Burns Mouse 3 +4 4 NULL 4 4 4 Gibbon Chris 4 +5 5 NULL 5 5 5 Gray Lanark 5 +truncate t1; +Column type change, should fail +alter table t1 change cc c bigint; +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) NOT NULL DEFAULT '0', + `b` int(11) NOT NULL DEFAULT '0', + `c` bigint(20) DEFAULT NULL, + `d` int(11) DEFAULT NULL, + `e` varchar(200) DEFAULT NULL, + `f` int(11) DEFAULT NULL, + `g` char(20) DEFAULT NULL, + `h` text, + `i` int(11) DEFAULT NULL, + PRIMARY KEY (`a`,`b`) +) /*!50100 TABLESPACE ts1 */ ENGINE=ndbcluster DEFAULT CHARSET=latin1 +Retry with --promote-attribute +select * from t1 order by a; +a b c d e f g h i +1 1 1 1 1 1 Rankin Rebus 1 +2 2 2 2 2 2 Doyle Holmes 2 +3 3 3 3 3 3 Burns Mouse 3 +4 4 4 4 4 4 Gibbon Chris 4 +5 5 5 5 5 5 Gray Lanark 5 +truncate t1; +Column nullability change, should fail +alter table t1 change c c int not null; +alter table t1 change c c int; +Column length change, should fail +alter table t1 change g g char(22); +Character set difference, should fail +alter table t1 change g g char(20) character set binary; +alter table t1 change g g char(20); +AutoIncrement difference, should fail +alter table t1 change b b int auto_increment; +alter table t1 change b b int; +ArrayType difference, should fail +alter table t1 change e e varchar(300); +alter table t1 change e e varchar(200); +StorageType difference, should pass +CREATE LOGFILE GROUP lg1 +ADD UNDOFILE 'undofile.dat' +INITIAL_SIZE 16M +UNDO_BUFFER_SIZE = 1M +ENGINE=NDB; +CREATE TABLESPACE ts1 +ADD DATAFILE 'datafile.dat' +USE LOGFILE GROUP lg1 +INITIAL_SIZE 12M +ENGINE NDB; +alter table t1 change i i int storage disk; +select * from t1 order by a; +a b c d e f g h i +1 1 1 1 1 1 Rankin Rebus 1 +2 2 2 2 2 2 Doyle Holmes 2 +3 3 3 3 3 3 Burns Mouse 3 +4 4 4 4 4 4 Gibbon Chris 4 +5 5 5 5 5 5 Gray Lanark 5 +alter table t1 change i i int storage memory; +truncate t1; +Dynamic property difference, should pass +alter table t1 change c c int column_format dynamic; +select * from t1 order by a; +a b c d e f g h i +1 1 1 1 1 1 Rankin Rebus 1 +2 2 2 2 2 2 Doyle Holmes 2 +3 3 3 3 3 3 Burns Mouse 3 +4 4 4 4 4 4 Gibbon Chris 4 +5 5 5 5 5 5 Gray Lanark 5 +drop table t1; +alter tablespace ts1 drop datafile 'datafile.dat' engine=ndb; +drop tablespace ts1 engine=ndb; +drop logfile group lg1 engine=ndb; +Different PK columns, should fail +create table t1 ( +a int, +b int, +c int, +d int, +e varchar(200), +f int, +g char(20), +h text, +i int, +primary key (a)) TABLESPACE ts1 engine = ndb; +drop table t1; +Different distribution keys, should pass +create table t1 ( +a int, +b int, +c int, +d int, +e varchar(200), +f int, +g char(20), +h text, +i int, +primary key(a,b)) TABLESPACE ts1 engine = ndb partition by key(a); +select * from t1 order by a; +a b c d e f g h i +1 1 1 1 1 1 Rankin Rebus 1 +2 2 2 2 2 2 Doyle Holmes 2 +3 3 3 3 3 3 Burns Mouse 3 +4 4 4 4 4 4 Gibbon Chris 4 +5 5 5 5 5 5 Gray Lanark 5 +drop table t1; === renamed file 'mysql-test/suite/ndb/t/ndb_restore_compressed-master.opt' => 'mysql-test/suite/ndb/t/ndb_restore_compat_compression-master.opt' --- a/mysql-test/suite/ndb/t/ndb_restore_compressed-master.opt 2009-04-09 15:27:21 +0000 +++ b/mysql-test/suite/ndb/t/ndb_restore_compat_compression-master.opt 2011-02-22 01:15:42 +0000 @@ -1 +1 @@ ---result-file=../suite/ndb/r/ndb_restore +--result-file=../suite/ndb/r/ndb_restore_misc === renamed file 'mysql-test/suite/ndb/t/ndb_restore_compressed.test' => 'mysql-test/suite/ndb/t/ndb_restore_compat_compression.test' --- a/mysql-test/suite/ndb/t/ndb_restore_compressed.test 2009-02-03 13:35:56 +0000 +++ b/mysql-test/suite/ndb/t/ndb_restore_compat_compression.test 2011-02-22 01:15:42 +0000 @@ -1,3 +1,11 @@ +###################################################################### +# Test restoring compressed backups +###################################################################### + +# enable compressed backup --exec $NDB_MGM --no-defaults --ndb-connectstring="$NDB_CONNECTSTRING" -e "all dump 13001 1" >> $NDB_TOOLS_OUTPUT --- source suite/ndb/t/ndb_restore.test + +--source suite/ndb/t/ndb_restore_misc.test + +# disable compressed backup --exec $NDB_MGM --no-defaults --ndb-connectstring="$NDB_CONNECTSTRING" -e "all dump 13001 0" >> $NDB_TOOLS_OUTPUT === renamed file 'mysql-test/suite/ndb/t/ndb_restore_compat.test' => 'mysql-test/suite/ndb/t/ndb_restore_compat_downward.test' --- a/mysql-test/suite/ndb/t/ndb_restore_compat.test 2010-12-03 09:29:44 +0000 +++ b/mysql-test/suite/ndb/t/ndb_restore_compat_downward.test 2011-02-22 01:15:42 +0000 @@ -1,3 +1,7 @@ +###################################################################### +# Test restoring backups of older/packed formats +###################################################################### + -- source include/have_ndb.inc -- source include/have_case_sensitive_file_system.inc === renamed file 'mysql-test/suite/ndb/t/ndb_restore_different_endian_data.test' => 'mysql-test/suite/ndb/t/ndb_restore_compat_endianness.test' --- a/mysql-test/suite/ndb/t/ndb_restore_different_endian_data.test 2008-05-16 20:20:34 +0000 +++ b/mysql-test/suite/ndb/t/ndb_restore_compat_endianness.test 2011-02-22 01:15:42 +0000 @@ -1,3 +1,7 @@ +###################################################################### +# Test restoring backups of different endianness +###################################################################### + -- source include/have_ndb.inc -- source include/ndb_default_cluster.inc === renamed file 'mysql-test/suite/ndb/t/ndb_restore_lossy_charbinary_conv.test' => 'mysql-test/suite/ndb/t/ndb_restore_conv_lossy_charbinary.test' --- a/mysql-test/suite/ndb/t/ndb_restore_lossy_charbinary_conv.test 2010-10-22 06:00:55 +0000 +++ b/mysql-test/suite/ndb/t/ndb_restore_conv_lossy_charbinary.test 2011-02-22 01:15:42 +0000 @@ -1,7 +1,5 @@ ###################################################################### -# Author: Martin Zaun -# Date: 2010-10 -# Purpose: Lossy conversion test for [var]char and [var]binary types +# Test restoring backups with lossy conversions on [var]char|binary types ###################################################################### -- source include/have_ndb.inc === renamed file 'mysql-test/suite/ndb/t/ndb_restore_lossy_integral_conv.test' => 'mysql-test/suite/ndb/t/ndb_restore_conv_lossy_integral.test' --- a/mysql-test/suite/ndb/t/ndb_restore_lossy_integral_conv.test 2010-10-22 06:00:55 +0000 +++ b/mysql-test/suite/ndb/t/ndb_restore_conv_lossy_integral.test 2011-02-22 01:15:42 +0000 @@ -1,7 +1,5 @@ ###################################################################### -# Author: Martin Zaun -# Date: 2010-10 -# Purpose: Lossy conversion test for integral types +# Test restoring backups with lossy conversions on integral types ###################################################################### -- source include/have_ndb.inc === renamed file 'mysql-test/suite/ndb/t/ndb_restore_padding_preservation.test' => 'mysql-test/suite/ndb/t/ndb_restore_conv_padding.test' --- a/mysql-test/suite/ndb/t/ndb_restore_padding_preservation.test 2010-10-22 06:00:55 +0000 +++ b/mysql-test/suite/ndb/t/ndb_restore_conv_padding.test 2011-02-22 01:15:42 +0000 @@ -1,7 +1,5 @@ ###################################################################### -# Author: Martin Zaun -# Date: 2010-10 -# Purpose: Right-padding preservation test for char and binary types +# Test restoring backups with preserving padding in char/bin conversions ###################################################################### -- source include/have_ndb.inc === renamed file 'mysql-test/suite/ndb/t/ndb_restore_promotion.test' => 'mysql-test/suite/ndb/t/ndb_restore_conv_promotion.test' --- a/mysql-test/suite/ndb/t/ndb_restore_promotion.test 2009-08-18 13:02:20 +0000 +++ b/mysql-test/suite/ndb/t/ndb_restore_conv_promotion.test 2011-02-22 01:15:42 +0000 @@ -1,8 +1,6 @@ -############################################################# -# Author: Guangbao -# Date: 2007-11 -# Purpose: Basic Integer,Char and Binary type promotion test -############################################################## +###################################################################### +# Test restoring backups with widening type conversions (promotion) +###################################################################### -- source include/have_ndb.inc -- source include/not_embedded.inc === renamed file 'mysql-test/suite/ndb/t/ndb_restore.test' => 'mysql-test/suite/ndb/t/ndb_restore_misc.test' --- a/mysql-test/suite/ndb/t/ndb_restore.test 2010-02-22 13:59:29 +0000 +++ b/mysql-test/suite/ndb/t/ndb_restore_misc.test 2011-02-22 01:15:42 +0000 @@ -1,3 +1,7 @@ +###################################################################### +# Test various issues ndb_restore had at some time +###################################################################### + -- source include/have_ndb.inc -- source include/ndb_default_cluster.inc === modified file 'mysql-test/suite/ndb/t/ndb_restore_print.test' --- a/mysql-test/suite/ndb/t/ndb_restore_print.test 2009-04-08 13:19:57 +0000 +++ b/mysql-test/suite/ndb/t/ndb_restore_print.test 2011-02-22 01:15:42 +0000 @@ -1,3 +1,7 @@ +###################################################################### +# Test ndb_restore's print_data feature +###################################################################### + -- source include/have_ndb.inc -- source include/ndb_default_cluster.inc === renamed file 'mysql-test/suite/ndb/t/ndb_blob_restore.test' => 'mysql-test/suite/ndb/t/ndb_restore_schema_blobs.test' --- a/mysql-test/suite/ndb/t/ndb_blob_restore.test 2007-11-29 10:29:35 +0000 +++ b/mysql-test/suite/ndb/t/ndb_restore_schema_blobs.test 2011-02-22 01:15:42 +0000 @@ -1,3 +1,7 @@ +###################################################################### +# Test restoring backups with blob columns +###################################################################### + -- source include/have_ndb.inc -- source include/ndb_default_cluster.inc === renamed file 'mysql-test/suite/ndb/t/ndb_restore_partition.test' => 'mysql-test/suite/ndb/t/ndb_restore_schema_partitions.test' --- a/mysql-test/suite/ndb/t/ndb_restore_partition.test 2009-02-03 13:50:47 +0000 +++ b/mysql-test/suite/ndb/t/ndb_restore_schema_partitions.test 2011-02-22 01:15:42 +0000 @@ -1,3 +1,7 @@ +###################################################################### +# Test restoring backups into partitioned tables +###################################################################### + -- source include/have_ndb.inc -- source include/ndb_default_cluster.inc === renamed file 'mysql-test/suite/ndb/t/ndb_restore_rewrite_db.test' => 'mysql-test/suite/ndb/t/ndb_restore_schema_rewrites.test' --- a/mysql-test/suite/ndb/t/ndb_restore_rewrite_db.test 2011-02-02 06:52:12 +0000 +++ b/mysql-test/suite/ndb/t/ndb_restore_schema_rewrites.test 2011-02-22 01:15:42 +0000 @@ -1,7 +1,5 @@ ###################################################################### -# Author: Martin Zaun -# Date: 2011-01 -# Purpose: test of rewrite-database feature +# Test restoring backups into renamed databases ###################################################################### -- source include/have_ndb.inc === renamed file 'mysql-test/suite/ndb/t/ndb_restore_options.test' => 'mysql-test/suite/ndb/t/ndb_restore_schema_subsets.test' --- a/mysql-test/suite/ndb/t/ndb_restore_options.test 2010-06-11 19:40:45 +0000 +++ b/mysql-test/suite/ndb/t/ndb_restore_schema_subsets.test 2011-02-22 01:15:42 +0000 @@ -1,8 +1,10 @@ +###################################################################### +# Test restoring backups with in- or excluding tables or databases +###################################################################### + -- source include/have_ndb.inc -- source include/ndb_default_cluster.inc -# Bug#40429 Ignore tables when restoring - --echo ************************************* --echo Creating various databases and tables --echo ************************************* @@ -348,199 +350,3 @@ drop table db2.tab1, db2.tab2; drop database db1; drop database db2; - -# End of bug 40429 - - ---echo Test ndb_restore ability to ignore some schema differences - -use test; -create table t1 ( - a int, - b int, - c int, - d int, - e varchar(200), - f int, - g char(20), - h text, - i int, - primary key(a,b)) TABLESPACE ts1 engine = ndb; - -insert into t1 values - (1, 1, 1, 1, '1', 1, 'Rankin', 'Rebus', 1), - (2, 2, 2, 2, '2', 2, 'Doyle', 'Holmes', 2), - (3, 3, 3, 3, '3', 3, 'Burns', 'Mouse', 3), - (4, 4, 4, 4, '4', 4, 'Gibbon', 'Chris', 4), - (5, 5, 5, 5, '5', 5, 'Gray', 'Lanark', 5); - -select * from t1 order by a; - ---echo Backing up data ---source include/ndb_backup.inc - -drop table t1; - ---echo Normal restore ---exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 1 -r -m $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT ---exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 2 -r $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT - -show create table t1; - -select * from t1 order by a; - -truncate t1; - ---echo Column name change, should fail without --exclude-missing-columns - -alter table t1 change c cc int; - ---error 1 ---exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 1 -r $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT - ---echo Retry with --exclude-missing-columns - ---exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 1 -r --exclude-missing-columns $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT ---exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 2 -r --exclude-missing-columns $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT - -select * from t1 order by a; -truncate t1; - ---echo Column type change, should fail - -alter table t1 change cc c bigint; -show create table t1; #REMOVE! ---error 1 ---exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 1 -r $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT - ---echo Retry with --promote-attribute - ---exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 1 -r --promote-attribute $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT ---exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 2 -r --promote-attribute $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT - -select * from t1 order by a; -truncate t1; - ---echo Column nullability change, should fail - -alter table t1 change c c int not null; - ---error 1 ---exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 1 -r $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT - -alter table t1 change c c int; - -# Skip Precision and scale differences - should fail - ---echo Column length change, should fail - -alter table t1 change g g char(22); - ---error 1 ---exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 1 -r $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT - ---echo Character set difference, should fail - -alter table t1 change g g char(20) character set binary; - ---error 1 ---exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 1 -r $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT - -alter table t1 change g g char(20); - ---echo AutoIncrement difference, should fail - -alter table t1 change b b int auto_increment; - ---error 1 ---exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 1 -r $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT - -alter table t1 change b b int; - -# Skip 'char*' default value until 7.0 - ---echo ArrayType difference, should fail -alter table t1 change e e varchar(300); - ---error 1 ---exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 1 -r $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT - -alter table t1 change e e varchar(200); - ---echo StorageType difference, should pass -CREATE LOGFILE GROUP lg1 -ADD UNDOFILE 'undofile.dat' -INITIAL_SIZE 16M -UNDO_BUFFER_SIZE = 1M -ENGINE=NDB; - -CREATE TABLESPACE ts1 -ADD DATAFILE 'datafile.dat' -USE LOGFILE GROUP lg1 -INITIAL_SIZE 12M -ENGINE NDB; - -alter table t1 change i i int storage disk; - ---exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 1 -r $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT ---exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 2 -r $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT - -select * from t1 order by a; - -alter table t1 change i i int storage memory; -truncate t1; - -# Skip BlobType difference (should fail) - ---echo Dynamic property difference, should pass - -alter table t1 change c c int column_format dynamic; - ---exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 1 -r $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT ---exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 2 -r $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT - -select * from t1 order by a; - -drop table t1; -alter tablespace ts1 drop datafile 'datafile.dat' engine=ndb; -drop tablespace ts1 engine=ndb; -drop logfile group lg1 engine=ndb; - ---echo Different PK columns, should fail -create table t1 ( - a int, - b int, - c int, - d int, - e varchar(200), - f int, - g char(20), - h text, - i int, - primary key (a)) TABLESPACE ts1 engine = ndb; - ---error 1 ---exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 1 -r $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT - -drop table t1; - ---echo Different distribution keys, should pass - -create table t1 ( - a int, - b int, - c int, - d int, - e varchar(200), - f int, - g char(20), - h text, - i int, - primary key(a,b)) TABLESPACE ts1 engine = ndb partition by key(a); - ---exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 1 -r $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT ---exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 2 -r $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT - -select * from t1 order by a; - -drop table t1; === added file 'mysql-test/suite/ndb/t/ndb_restore_schema_tolerance.test' --- a/mysql-test/suite/ndb/t/ndb_restore_schema_tolerance.test 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/ndb/t/ndb_restore_schema_tolerance.test 2011-02-22 01:15:42 +0000 @@ -0,0 +1,199 @@ +###################################################################### +# Test restoring backups into similar schemas +###################################################################### + +-- source include/have_ndb.inc +-- source include/ndb_default_cluster.inc + +--echo Test ndb_restore ability to ignore some schema differences + +use test; +create table t1 ( + a int, + b int, + c int, + d int, + e varchar(200), + f int, + g char(20), + h text, + i int, + primary key(a,b)) TABLESPACE ts1 engine = ndb; + +insert into t1 values + (1, 1, 1, 1, '1', 1, 'Rankin', 'Rebus', 1), + (2, 2, 2, 2, '2', 2, 'Doyle', 'Holmes', 2), + (3, 3, 3, 3, '3', 3, 'Burns', 'Mouse', 3), + (4, 4, 4, 4, '4', 4, 'Gibbon', 'Chris', 4), + (5, 5, 5, 5, '5', 5, 'Gray', 'Lanark', 5); + +select * from t1 order by a; + +--echo Backing up data +--source include/ndb_backup.inc + +drop table t1; + +--echo Normal restore +--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 1 -r -m $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT +--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 2 -r $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT + +show create table t1; + +select * from t1 order by a; + +truncate t1; + +--echo Column name change, should fail without --exclude-missing-columns + +alter table t1 change c cc int; + +--error 1 +--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 1 -r $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT + +--echo Retry with --exclude-missing-columns + +--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 1 -r --exclude-missing-columns $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT +--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 2 -r --exclude-missing-columns $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT + +select * from t1 order by a; +truncate t1; + +--echo Column type change, should fail + +alter table t1 change cc c bigint; +show create table t1; #REMOVE! +--error 1 +--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 1 -r $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT + +--echo Retry with --promote-attribute + +--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 1 -r --promote-attribute $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT +--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 2 -r --promote-attribute $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT + +select * from t1 order by a; +truncate t1; + +--echo Column nullability change, should fail + +alter table t1 change c c int not null; + +--error 1 +--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 1 -r $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT + +alter table t1 change c c int; + +# Skip Precision and scale differences - should fail + +--echo Column length change, should fail + +alter table t1 change g g char(22); + +--error 1 +--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 1 -r $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT + +--echo Character set difference, should fail + +alter table t1 change g g char(20) character set binary; + +--error 1 +--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 1 -r $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT + +alter table t1 change g g char(20); + +--echo AutoIncrement difference, should fail + +alter table t1 change b b int auto_increment; + +--error 1 +--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 1 -r $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT + +alter table t1 change b b int; + +# Skip 'char*' default value until 7.0 + +--echo ArrayType difference, should fail +alter table t1 change e e varchar(300); + +--error 1 +--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 1 -r $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT + +alter table t1 change e e varchar(200); + +--echo StorageType difference, should pass +CREATE LOGFILE GROUP lg1 +ADD UNDOFILE 'undofile.dat' +INITIAL_SIZE 16M +UNDO_BUFFER_SIZE = 1M +ENGINE=NDB; + +CREATE TABLESPACE ts1 +ADD DATAFILE 'datafile.dat' +USE LOGFILE GROUP lg1 +INITIAL_SIZE 12M +ENGINE NDB; + +alter table t1 change i i int storage disk; + +--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 1 -r $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT +--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 2 -r $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT + +select * from t1 order by a; + +alter table t1 change i i int storage memory; +truncate t1; + +# Skip BlobType difference (should fail) + +--echo Dynamic property difference, should pass + +alter table t1 change c c int column_format dynamic; + +--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 1 -r $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT +--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 2 -r $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT + +select * from t1 order by a; + +drop table t1; +alter tablespace ts1 drop datafile 'datafile.dat' engine=ndb; +drop tablespace ts1 engine=ndb; +drop logfile group lg1 engine=ndb; + +--echo Different PK columns, should fail +create table t1 ( + a int, + b int, + c int, + d int, + e varchar(200), + f int, + g char(20), + h text, + i int, + primary key (a)) TABLESPACE ts1 engine = ndb; + +--error 1 +--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 1 -r $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT + +drop table t1; + +--echo Different distribution keys, should pass + +create table t1 ( + a int, + b int, + c int, + d int, + e varchar(200), + f int, + g char(20), + h text, + i int, + primary key(a,b)) TABLESPACE ts1 engine = ndb partition by key(a); + +--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 1 -r $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT +--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults --core-file=false -b $the_backup_id -n 2 -r $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id >> $NDB_TOOLS_OUTPUT + +select * from t1 order by a; + +drop table t1; --===============6013656493697925402== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/martin.zaun@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: martin.zaun@stripped # target_branch: file:///Users/mz/mysql/ndb-6.3/ # testament_sha1: 4c2433c374d8a98fce42ab0175f2653d1b6e92c2 # timestamp: 2011-02-21 17:17:08 -0800 # source_branch: file:///Users/mz/mysql/ndb-6.3-ndb_restore-test-\ # cleanup/ # base_revision_id: martin.zaun@stripped\ # n8sib38fzq7rh8rp # # Begin bundle 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 --===============6013656493697925402==--