From: Martin Zaun Date: February 22 2011 10:34pm Subject: bzr push into mysql-5.1-telco-6.3 branch (martin.zaun:3391 to 3392) List-Archive: http://lists.mysql.com/commits/131904 Message-Id: <201102222235.p1M1DKEQ005540@acsinet15.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============3462547454542716084==" --===============3462547454542716084== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline 3392 Martin Zaun 2011-02-22 [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 3391 Martin Zaun 2011-02-21 ndb_restore - fix assert modified: storage/ndb/include/util/NdbTypesUtil.hpp === 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; --===============3462547454542716084== 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: d97b8d42f66fe0f68e4169002c41d91839b815a2 # timestamp: 2011-02-22 14:34:13 -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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 6y13jcb1e80dJ2mYxFZxLTs/+LuSKcKEhmjlAcg= --===============3462547454542716084==--