polardbxengine/mysql-test/suite/ndb/t/ndb_import2.test

112 lines
2.5 KiB
Plaintext

--source include/have_ndb.inc
--source suite/ndb/include/ndb_find_import_tool.inc
--source have_ndb_error_insert.inc
--echo # large ndb_import tests
--echo # node failure test
perl;
use strict;
use Symbol;
my $vardir = $ENV{MYSQLTEST_VARDIR}
or die "need MYSQLTEST_VARDIR";
my $file = "$vardir/tmp/t1.csv";
my $fh = gensym();
open($fh, ">:raw", $file)
or die "$file: open for write failed: $!";
for (my $i = 0; $i < 400000; $i++) {
print $fh $i, "\t", int(rand(1000)), "\n";
}
close($fh)
or "$file: close after write failed: $!";
exit(0);
EOF
perl;
use strict;
use Symbol;
my $vardir = $ENV{MYSQLTEST_VARDIR}
or die "need MYSQLTEST_VARDIR";
my $file = "$vardir/tmp/t2.csv";
my $fh = gensym();
open($fh, ">:raw", $file)
or die "$file: open for write failed: $!";
for (my $i = 0; $i < 400000; $i++) {
print $fh 10*$i, "\n";
}
close($fh)
or "$file: close after write failed: $!";
exit(0);
EOF
create table t1 (
a int not null,
b int not null,
primary key using hash (a)
) engine ndb;
create table t1ver like t1;
create table t2 (
b int not null,
# unique key would turn into pk
key (b)
) engine ndb;
create table t2ver like t2;
--echo # load t1ver, t2ver
# load first to avoid testing LOAD DATA node failure
--disable_query_log
eval load data infile '$MYSQLTEST_VARDIR/tmp/t1.csv'
into table t1ver
lines terminated by '\n';
--enable_query_log
--disable_query_log
eval load data infile '$MYSQLTEST_VARDIR/tmp/t2.csv'
into table t2ver
lines terminated by '\n';
--enable_query_log
# crash node 2 in 5-25 seconds, may hit t1 or t2
exec $NDB_MGM --no-defaults --ndb-connectstring="$NDB_CONNECTSTRING"
-e "2 dump 9999 5000 25000" >> $NDB_TOOLS_OUTPUT 2>&1;
--echo # import t1, t2
exec $NDB_IMPORT --state-dir=$MYSQLTEST_VARDIR/tmp --keep-state --log-level=1
--temperrors=1000 --csvopt=n
test
$MYSQLTEST_VARDIR/tmp/t1.csv
$MYSQLTEST_VARDIR/tmp/t2.csv >> $NDB_TOOLS_OUTPUT 2>&1;
--echo # verify t1, t2
# node failure may hit these too
--disable_warnings
select count(*) from t1;
select count(*) from t1ver;
select count(*) from t1 x, t1ver y
where x.a = y.a and x.b = y.b;
select count(*) from t2;
select count(*) from t2ver;
select count(*) from t2 x, t2ver y
where x.b = y.b;
drop table t1, t1ver, t2, t2ver;
--enable_warnings
--remove_files_wildcard $MYSQLTEST_VARDIR/tmp t*.csv
--remove_files_wildcard $MYSQLTEST_VARDIR/tmp t*.map
--remove_files_wildcard $MYSQLTEST_VARDIR/tmp t*.rej
--remove_files_wildcard $MYSQLTEST_VARDIR/tmp t*.res
--remove_file $NDB_TOOLS_OUTPUT