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

205 lines
4.7 KiB
Perl

--source include/have_ndb.inc
perl;
use strict;
require 'suite/ndb/t/ndb_import.pl';
# tables
# native numbers
my $t1attrs = [
{ name=>"a", type=>"bigint", unsigned=>1, pk=>1 },
{ name=>'b', type=>"bigint" },
{ name=>'c', type=>"int", unsigned=>1 },
{ name=>'d', type=>"int" },
{ name=>'e', type=>"mediumint", unsigned=>1 },
{ name=>'f', type=>"mediumint" },
{ name=>'g', type=>"smallint", unsigned=>1 },
{ name=>'h', type=>"smallint" },
{ name=>'i', type=>"tinyint", unsigned=>1 },
{ name=>'j', type=>"tinyint" },
{ name=>'k', type=>"double" },
{ name=>'l', type=>"float" },
];
my $t1 = {
name => 't1',
attrs => $t1attrs,
rows => 1000,
};
# char
my $t2attrs = [
{ name=>"a", type=>"char", len=>10, pk=>1 },
{ name=>"b", type=>"char", len=>255 },
{ name=>"c", type=>"varchar", len=>10 },
{ name=>"d", type=>"varchar", len=>1000 },
];
my $t2 = {
name => 't2',
attrs => $t2attrs,
rows => 1000,
};
# binary
my $t3attrs = [
{ name=>"a", type=>"binary", len=>10, pk=>1 },
{ name=>"b", type=>"binary", len=>255 },
{ name=>"c", type=>"varbinary", len=>10 },
{ name=>"d", type=>"varbinary", len=>1000 },
];
my $t3 = {
name => 't3',
attrs => $t3attrs,
rows => 1000,
};
# decimal
my $t4attrs = [
{ name=>"a", type=>"decimal", prec=>10, scale=>0 },
{ name=>"b", type=>"decimal", prec=>20, scale=>0 },
{ name=>"c", type=>"decimal", prec=>10, scale=>5 },
{ name=>"d", type=>"decimal", prec=>20, scale=>5 },
{ name=>"e", type=>"decimal", prec=>10, scale=>10 },
{ name=>"f", type=>"decimal", prec=>20, scale=>10 },
{ name=>"g", type=>"int", pk=>1 },
];
my $t4 = {
name => 't4',
attrs => $t4attrs,
rows => 1000,
};
# bit XXX fix odd lengths
my $t5attrs = [
{ name=>"a", type=>"bit", len=>1 },
{ name=>"b", type=>"bit", len=>8 },
{ name=>"c", type=>"bit", len=>16 },
{ name=>"d", type=>"bit", len=>32 },
{ name=>"e", type=>"bit", len=>64 },
{ name=>"f", type=>"int", pk=>1 },
];
my $t5 = {
name => 't5',
attrs => $t5attrs,
rows => 1000,
};
# date and time
my $t6attrs = [
{ name=>"a", type=>"year" },
{ name=>"b", type=>"date" },
{ name=>"c", type=>"time", prec=>6 },
{ name=>"d", type=>"datetime", prec=>3 },
{ name=>"e", type=>"timestamp", prec=>6, notnull=>1 },
{ name=>"f", type=>"int", pk=>1 }
];
my $t6 = {
name => 't6',
attrs => $t6attrs,
rows => 1000,
};
# blobs
my $t7attrs = [
{ name=>"a", type=>"text", len=>10 },
{ name=>"b", type=>"text", len=>255 },
{ name=>"c", type=>"text", len=>65536 },
{ name=>"d", type=>"int", pk=>1 },
{ name=>"e", type=>"blob", len=>10 },
{ name=>"f", type=>"blob", len=>256 },
{ name=>"g", type=>"blob", len=>65535 },
];
my $t7 = {
name => 't7',
attrs => $t7attrs,
rows => 20,
};
# simple table for rejects testing
my $t8attrs = [
{ name=>"a", type=>"int", unsigned=>1, pk=>1 },
{ name=>"b", type=>"smallint", notnull=>1 },
{ name=>"c", type=>"float", notnull=>1 },
{ name=>"d", type=>"char", len=>10, minlen=>1, notnull=>1 },
];
my $t8 = {
name => 't8',
attrs => $t8attrs,
rows => 1000,
};
# tests
my $test1 = {
tag => "a",
desc => "all data types, csv default format",
tables => [ $t1, $t2, $t3, $t4, $t5, $t6, $t7 ],
csvfmt => get_csvfmt1(),
rejectsopt => 0, # option to ndb_import
rejectsgen => 0, # number of bad rows to generate
verify => 'all',
};
my $test2 = {
tag => "b",
desc => "all data types, csv complex format",
tables => [ $t1, $t2, $t3, $t4, $t5, $t6, $t7 ],
csvfmt => get_csvfmt2(),
rejectsopt => 0,
rejectsgen => 0,
resumeopt => 0,
verify => 'all',
};
my $test3 = {
tag => "c",
desc => "success, with rejected rows",
tables => [ $t8 ],
csvfmt => get_csvfmt1(),
rejectsopt => 100,
rejectsgen => 100,
resumeopt => 0,
verify => 'pk',
dumpdata => 1,
};
my $test4 = {
tag => "d",
desc => "success, with rejected rows and resume",
tables => [ $t8 ],
csvfmt => get_csvfmt1(),
rejectsopt => 0,
rejectsgen => 10,
resumeopt => 1,
verify => 'pk',
dumpdata => 1,
};
my $tests = {
tag => '1',
testlist => [ $test1, $test2, $test3, $test4 ],
};
write_tests($tests);
exit(0);
EOF
# run test
--source include/have_ndb.inc
--source suite/ndb/include/ndb_find_import_tool.inc
--source $MYSQLTEST_VARDIR/tmp/ndb_import1.inc
--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_files_wildcard $MYSQLTEST_VARDIR/tmp t*.sto
--remove_files_wildcard $MYSQLTEST_VARDIR/tmp t*.stt
--remove_files_wildcard $MYSQLTEST_VARDIR/tmp t*.dump
--remove_files_wildcard $MYSQLTEST_VARDIR/tmp t*genrej
--remove_file $MYSQLTEST_VARDIR/tmp/ndb_import1.inc
--remove_file $NDB_TOOLS_OUTPUT
# vim:set ft=perl: