Merge mysql.com:/usr/local/home/marty/MySQL/mysql-5.1-new
into mysql.com:/usr/local/home/marty/MySQL/mysql-5.1-new-ndb
This commit is contained in:
commit
fbb5bfc1e4
@ -28,6 +28,7 @@ INSERT INTO t1 VALUES(412,1,'Testing MySQL databases is a cool ',
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
|
||||
sync_slave_with_master;
|
||||
--sleep 5
|
||||
--echo --- Select from t1 on slave ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
|
||||
@ -41,9 +42,9 @@ SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
|
||||
# Must give injector thread a little time to get update
|
||||
# into the binlog other wise we will miss the update.
|
||||
sleep 10;
|
||||
|
||||
sync_slave_with_master;
|
||||
--sleep 5
|
||||
--echo --- Check Update on slave ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
|
||||
@ -55,6 +56,7 @@ DELETE FROM t1 WHERE id = 42;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
|
||||
sync_slave_with_master;
|
||||
--sleep 5
|
||||
--echo --- Show current count on slave for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
|
||||
|
@ -321,6 +321,8 @@ our $opt_with_ndbcluster_slave;
|
||||
our $opt_with_ndbcluster_all= 0;
|
||||
our $opt_with_ndbcluster_only= 0;
|
||||
our $opt_ndb_extra_test= 0;
|
||||
our $opt_skip_master_binlog= 0;
|
||||
our $opt_skip_slave_binlog= 0;
|
||||
|
||||
our $exe_ndb_mgm;
|
||||
our $path_ndb_tools_dir;
|
||||
@ -599,6 +601,8 @@ sub command_line_setup () {
|
||||
'with-ndbcluster-all' => \$opt_with_ndbcluster_all,
|
||||
'with-ndbcluster-only' => \$opt_with_ndbcluster_only,
|
||||
'ndb-extra-test' => \$opt_ndb_extra_test,
|
||||
'skip-master-binlog' => \$opt_skip_master_binlog,
|
||||
'skip-slave-binlog' => \$opt_skip_slave_binlog,
|
||||
'do-test=s' => \$opt_do_test,
|
||||
'start-from=s' => \$opt_start_from,
|
||||
'suite=s' => \$opt_suite,
|
||||
@ -2157,6 +2161,14 @@ sub run_testcase ($) {
|
||||
if ( $using_ndbcluster_master and ! $master->[1]->{'pid'} )
|
||||
{
|
||||
# Test needs cluster, start an extra mysqld connected to cluster
|
||||
# First wait for first mysql server to have created ndb system tables ok
|
||||
if ( ! sleep_until_file_created("$master->[0]->{'path_myddir'}/cluster/apply_status.ndb",
|
||||
$master->[0]->{'start_timeout'},
|
||||
$master->[0]->{'pid'}))
|
||||
{
|
||||
report_failure_and_restart($tinfo);
|
||||
return;
|
||||
}
|
||||
mtr_tofile($master->[1]->{'path_myerr'},"CURRENT_TEST: $tname\n");
|
||||
$master->[1]->{'pid'}=
|
||||
mysqld_start('master',1,$tinfo->{'master_opt'},[],
|
||||
@ -2555,8 +2567,11 @@ sub mysqld_arguments ($$$$$$) {
|
||||
{
|
||||
my $id= $idx > 0 ? $idx + 101 : 1;
|
||||
|
||||
mtr_add_arg($args, "%s--log-bin=%s/log/master-bin%s", $prefix,
|
||||
$opt_vardir, $sidx);
|
||||
if (! $opt_skip_master_binlog)
|
||||
{
|
||||
mtr_add_arg($args, "%s--log-bin=%s/log/master-bin%s", $prefix,
|
||||
$opt_vardir, $sidx);
|
||||
}
|
||||
mtr_add_arg($args, "%s--pid-file=%s", $prefix,
|
||||
$master->[$idx]->{'path_mypid'});
|
||||
mtr_add_arg($args, "%s--port=%d", $prefix,
|
||||
@ -2597,9 +2612,12 @@ sub mysqld_arguments ($$$$$$) {
|
||||
# FIXME slave get this option twice?!
|
||||
mtr_add_arg($args, "%s--exit-info=256", $prefix);
|
||||
mtr_add_arg($args, "%s--init-rpl-role=slave", $prefix);
|
||||
mtr_add_arg($args, "%s--log-bin=%s/log/slave%s-bin", $prefix,
|
||||
$opt_vardir, $sidx); # FIXME use own dir for binlogs
|
||||
mtr_add_arg($args, "%s--log-slave-updates", $prefix);
|
||||
if (! $opt_skip_slave_binlog)
|
||||
{
|
||||
mtr_add_arg($args, "%s--log-bin=%s/log/slave%s-bin", $prefix,
|
||||
$opt_vardir, $sidx); # FIXME use own dir for binlogs
|
||||
mtr_add_arg($args, "%s--log-slave-updates", $prefix);
|
||||
}
|
||||
# FIXME option duplicated for slave
|
||||
mtr_add_arg($args, "%s--log=%s", $prefix,
|
||||
$slave->[$idx]->{'path_mylog'});
|
||||
|
@ -467,3 +467,116 @@ Create table test/def/t2_c failed: Translate frm error
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
drop table if exists t2_c;
|
||||
520093696,<the_backup_id>
|
||||
DROP DATABASE IF EXISTS BANK;
|
||||
CREATE DATABASE BANK default charset=latin1 default collate=latin1_bin;
|
||||
USE BANK;
|
||||
SHOW TABLES;
|
||||
Tables_in_BANK
|
||||
ACCOUNT
|
||||
GL
|
||||
ACCOUNT_TYPE
|
||||
TRANSACTION
|
||||
SYSTEM_VALUES
|
||||
SELECT * FROM GL ORDER BY TIME,ACCOUNT_TYPE;
|
||||
TIME ACCOUNT_TYPE BALANCE DEPOSIT_COUNT DEPOSIT_SUM WITHDRAWAL_COUNT WITHDRAWAL_SUM PURGED
|
||||
0 0 10000000 0 0 0 0 1
|
||||
0 1 30000 0 0 0 0 1
|
||||
0 2 20000 0 0 0 0 1
|
||||
0 3 20000 0 0 0 0 1
|
||||
0 4 20000 0 0 0 0 1
|
||||
1 0 10000000 0 0 0 0 1
|
||||
1 1 30000 0 0 0 0 1
|
||||
1 2 20000 0 0 0 0 1
|
||||
1 3 20000 0 0 0 0 1
|
||||
1 4 20000 0 0 0 0 1
|
||||
2 0 9857062 54 225197 76 368135 1
|
||||
2 1 60601 174 822920 181 792319 1
|
||||
2 2 68832 117 531214 98 482382 1
|
||||
2 3 83550 106 521953 104 458403 1
|
||||
2 4 19955 118 532084 110 532129 1
|
||||
3 0 9732896 62 289563 88 413729 1
|
||||
3 1 51056 202 895888 193 905433 0
|
||||
3 2 67183 122 596787 127 598436 1
|
||||
3 3 97669 159 761743 141 747624 1
|
||||
3 4 141196 140 727808 136 606567 1
|
||||
4 0 9616621 138 603930 142 720205 0
|
||||
4 1 178927 348 1741521 344 1613650 0
|
||||
4 2 52141 236 1169929 232 1184971 0
|
||||
4 3 48938 228 1147957 244 1196688 0
|
||||
4 4 193373 246 1257982 234 1205805 0
|
||||
5 0 9515281 156 726253 166 827593 0
|
||||
5 1 253798 597 2840640 545 2765769 0
|
||||
5 2 102776 362 1821680 364 1771045 0
|
||||
5 3 87349 359 1778652 375 1740241 0
|
||||
5 4 130796 351 1727448 375 1790025 0
|
||||
SELECT * FROM ACCOUNT ORDER BY ACCOUNT_ID;
|
||||
ACCOUNT_ID OWNER BALANCE ACCOUNT_TYPE
|
||||
0 0 9531306 0
|
||||
1 3001 123844 1
|
||||
2 3002 30800 2
|
||||
3 3003 3133 3
|
||||
4 3004 6524 4
|
||||
5 3005 80152 1
|
||||
6 3006 107390 1
|
||||
7 3007 69448 2
|
||||
8 3008 663 3
|
||||
9 3009 136740 4
|
||||
SELECT COUNT(*) FROM TRANSACTION;
|
||||
COUNT(*)
|
||||
6649
|
||||
SELECT * FROM SYSTEM_VALUES ORDER BY SYSTEM_VALUES_ID;
|
||||
SYSTEM_VALUES_ID VALUE
|
||||
0 4767
|
||||
1 6
|
||||
TRUNCATE GL;
|
||||
TRUNCATE ACCOUNT;
|
||||
TRUNCATE TRANSACTION;
|
||||
TRUNCATE SYSTEM_VALUES;
|
||||
TRUNCATE ACCOUNT_TYPE;
|
||||
SELECT * FROM GL ORDER BY TIME,ACCOUNT_TYPE;
|
||||
TIME ACCOUNT_TYPE BALANCE DEPOSIT_COUNT DEPOSIT_SUM WITHDRAWAL_COUNT WITHDRAWAL_SUM PURGED
|
||||
0 0 10000000 0 0 0 0 1
|
||||
0 1 30000 0 0 0 0 1
|
||||
0 2 20000 0 0 0 0 1
|
||||
0 3 20000 0 0 0 0 1
|
||||
0 4 20000 0 0 0 0 1
|
||||
1 0 10000000 0 0 0 0 1
|
||||
1 1 30000 0 0 0 0 1
|
||||
1 2 20000 0 0 0 0 1
|
||||
1 3 20000 0 0 0 0 1
|
||||
1 4 20000 0 0 0 0 1
|
||||
2 0 10000000 0 0 0 0 1
|
||||
2 1 30000 0 0 0 0 1
|
||||
2 2 20000 0 0 0 0 1
|
||||
2 3 20000 0 0 0 0 1
|
||||
2 4 20000 0 0 0 0 1
|
||||
3 0 9963591 14 59111 19 95520 0
|
||||
3 1 44264 49 255559 53 241295 0
|
||||
3 2 25515 39 177806 36 172291 0
|
||||
3 3 16779 26 129200 29 132421 0
|
||||
3 4 39851 43 182771 34 162920 0
|
||||
4 0 9733661 141 632616 162 862546 0
|
||||
4 1 63853 426 2005337 415 1985748 0
|
||||
4 2 140473 314 1548632 297 1433674 0
|
||||
4 3 13481 310 1528043 324 1531341 0
|
||||
4 4 138532 316 1540206 309 1441525 0
|
||||
SELECT * FROM ACCOUNT ORDER BY ACCOUNT_ID;
|
||||
ACCOUNT_ID OWNER BALANCE ACCOUNT_TYPE
|
||||
0 0 9679579 0
|
||||
1 3001 18130 1
|
||||
2 3002 12318 2
|
||||
3 3003 3049 3
|
||||
4 3004 39517 4
|
||||
5 3005 37051 1
|
||||
6 3006 144497 1
|
||||
7 3007 130670 2
|
||||
8 3008 13747 3
|
||||
9 3009 11442 4
|
||||
SELECT COUNT(*) FROM TRANSACTION;
|
||||
COUNT(*)
|
||||
4056
|
||||
SELECT * FROM SYSTEM_VALUES ORDER BY SYSTEM_VALUES_ID;
|
||||
SYSTEM_VALUES_ID VALUE
|
||||
0 2297
|
||||
1 5
|
||||
DROP DATABASE BANK;
|
||||
|
855
mysql-test/r/rpl_ndb_2innodb.result
Normal file
855
mysql-test/r/rpl_ndb_2innodb.result
Normal file
@ -0,0 +1,855 @@
|
||||
stop slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
reset master;
|
||||
reset slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
SET storage_engine=ndb;
|
||||
--- Doing pre test cleanup ---
|
||||
DROP TABLE IF EXISTS t1;
|
||||
--- Start test 1 Basic testing ---
|
||||
--- Create Table Section ---
|
||||
CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(255),
|
||||
bc CHAR(255), d DECIMAL(10,4) DEFAULT 0,
|
||||
f FLOAT DEFAULT 0, total BIGINT UNSIGNED,
|
||||
y YEAR, t DATE,PRIMARY KEY(id));
|
||||
--- Show table on master ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(255) DEFAULT NULL,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY KEY ()
|
||||
--- Show table on slave ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(255) DEFAULT NULL,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
--- Perform basic operation on master ---
|
||||
--- and ensure replicated correctly ---
|
||||
"--- Insert into t1 --" as "";
|
||||
--- Select from t1 on master ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Select from t1 on slave ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Update t1 on master --
|
||||
UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
|
||||
--- Check the update on master ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Check Update on slave ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Remove a record from t1 on master ---
|
||||
DELETE FROM t1 WHERE id = 42;
|
||||
--- Show current count on master for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
--- Show current count on slave for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
DELETE FROM t1;
|
||||
--- Check that simple Alter statements are replicated correctly --
|
||||
ALTER TABLE t1 DROP PRIMARY KEY, ADD PRIMARY KEY(id, total);
|
||||
ALTER TABLE t1 MODIFY vc TEXT;
|
||||
--- Show the new improved table on the master ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` text,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned NOT NULL DEFAULT '0',
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL,
|
||||
PRIMARY KEY (`id`,`total`)
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY KEY ()
|
||||
--- Make sure that our tables on slave are still same engine ---
|
||||
--- and that the alter statements replicated correctly ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` text,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned NOT NULL DEFAULT '0',
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL,
|
||||
PRIMARY KEY (`id`,`total`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
--- Perform basic operation on master ---
|
||||
--- and ensure replicated correctly ---
|
||||
"--- Insert into t1 --" as "";
|
||||
--- Select from t1 on master ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Select from t1 on slave ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Update t1 on master --
|
||||
UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
|
||||
--- Check the update on master ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Check Update on slave ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Remove a record from t1 on master ---
|
||||
DELETE FROM t1 WHERE id = 42;
|
||||
--- Show current count on master for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
--- Show current count on slave for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
DELETE FROM t1;
|
||||
--- End test 1 Basic testing ---
|
||||
--- Do Cleanup --
|
||||
DROP TABLE IF EXISTS t1;
|
||||
--- Start test 2 partition RANGE testing --
|
||||
--- Do setup --
|
||||
CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(255),
|
||||
bc CHAR(255), d DECIMAL(10,4) DEFAULT 0,
|
||||
f FLOAT DEFAULT 0, total BIGINT UNSIGNED,
|
||||
y YEAR, t DATE)
|
||||
PARTITION BY RANGE (YEAR(t))
|
||||
(PARTITION p0 VALUES LESS THAN (1901),
|
||||
PARTITION p1 VALUES LESS THAN (1946),
|
||||
PARTITION p2 VALUES LESS THAN (1966),
|
||||
PARTITION p3 VALUES LESS THAN (1986),
|
||||
PARTITION p4 VALUES LESS THAN (2005),
|
||||
PARTITION p5 VALUES LESS THAN MAXVALUE);
|
||||
--- Show table on master ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(255) DEFAULT NULL,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY RANGE (YEAR(t)) (PARTITION p0 VALUES LESS THAN (1901) ENGINE = ndbcluster, PARTITION p1 VALUES LESS THAN (1946) ENGINE = ndbcluster, PARTITION p2 VALUES LESS THAN (1966) ENGINE = ndbcluster, PARTITION p3 VALUES LESS THAN (1986) ENGINE = ndbcluster, PARTITION p4 VALUES LESS THAN (2005) ENGINE = ndbcluster, PARTITION p5 VALUES LESS THAN MAXVALUE ENGINE = ndbcluster)
|
||||
--- Show table on slave --
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(255) DEFAULT NULL,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 PARTITION BY RANGE (YEAR(t)) (PARTITION p0 VALUES LESS THAN (1901) ENGINE = InnoDB, PARTITION p1 VALUES LESS THAN (1946) ENGINE = InnoDB, PARTITION p2 VALUES LESS THAN (1966) ENGINE = InnoDB, PARTITION p3 VALUES LESS THAN (1986) ENGINE = InnoDB, PARTITION p4 VALUES LESS THAN (2005) ENGINE = InnoDB, PARTITION p5 VALUES LESS THAN MAXVALUE ENGINE = InnoDB)
|
||||
--- Perform basic operation on master ---
|
||||
--- and ensure replicated correctly ---
|
||||
"--- Insert into t1 --" as "";
|
||||
--- Select from t1 on master ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Select from t1 on slave ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Update t1 on master --
|
||||
UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
|
||||
--- Check the update on master ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Check Update on slave ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Remove a record from t1 on master ---
|
||||
DELETE FROM t1 WHERE id = 42;
|
||||
--- Show current count on master for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
--- Show current count on slave for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
DELETE FROM t1;
|
||||
--- Check that simple Alter statements are replicated correctly ---
|
||||
ALTER TABLE t1 ADD PRIMARY KEY(t,id);
|
||||
ALTER TABLE t1 MODIFY vc TEXT;
|
||||
--- Show the new improved table on the master ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` text,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date NOT NULL DEFAULT '0000-00-00',
|
||||
PRIMARY KEY (`t`,`id`)
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY RANGE (YEAR(t)) (PARTITION p0 VALUES LESS THAN (1901) ENGINE = ndbcluster, PARTITION p1 VALUES LESS THAN (1946) ENGINE = ndbcluster, PARTITION p2 VALUES LESS THAN (1966) ENGINE = ndbcluster, PARTITION p3 VALUES LESS THAN (1986) ENGINE = ndbcluster, PARTITION p4 VALUES LESS THAN (2005) ENGINE = ndbcluster, PARTITION p5 VALUES LESS THAN MAXVALUE ENGINE = ndbcluster)
|
||||
--- Make sure that our tables on slave are still same engine ---
|
||||
--- and that the alter statements replicated correctly ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` text,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date NOT NULL DEFAULT '0000-00-00',
|
||||
PRIMARY KEY (`t`,`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 PARTITION BY RANGE (YEAR(t)) (PARTITION p0 VALUES LESS THAN (1901) ENGINE = InnoDB, PARTITION p1 VALUES LESS THAN (1946) ENGINE = InnoDB, PARTITION p2 VALUES LESS THAN (1966) ENGINE = InnoDB, PARTITION p3 VALUES LESS THAN (1986) ENGINE = InnoDB, PARTITION p4 VALUES LESS THAN (2005) ENGINE = InnoDB, PARTITION p5 VALUES LESS THAN MAXVALUE ENGINE = InnoDB)
|
||||
--- Perform basic operation on master ---
|
||||
--- and ensure replicated correctly ---
|
||||
"--- Insert into t1 --" as "";
|
||||
--- Select from t1 on master ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Select from t1 on slave ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Update t1 on master --
|
||||
UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
|
||||
--- Check the update on master ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Check Update on slave ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Remove a record from t1 on master ---
|
||||
DELETE FROM t1 WHERE id = 42;
|
||||
--- Show current count on master for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
--- Show current count on slave for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
DELETE FROM t1;
|
||||
--- End test 2 partition RANGE testing ---
|
||||
--- Do Cleanup ---
|
||||
DROP TABLE IF EXISTS t1;
|
||||
--- Start test 3 partition LIST testing ---
|
||||
--- Do setup ---
|
||||
CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(255),
|
||||
bc CHAR(255), d DECIMAL(10,4) DEFAULT 0,
|
||||
f FLOAT DEFAULT 0, total BIGINT UNSIGNED,
|
||||
y YEAR, t DATE)
|
||||
PARTITION BY LIST(id)
|
||||
(PARTITION p0 VALUES IN (2, 4),
|
||||
PARTITION p1 VALUES IN (42, 142));
|
||||
--- Test 3 Alter to add partition ---
|
||||
ALTER TABLE t1 ADD PARTITION (PARTITION p2 VALUES IN (412));
|
||||
--- Show table on master ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(255) DEFAULT NULL,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY LIST (id) (PARTITION p0 VALUES IN (2,4) ENGINE = ndbcluster, PARTITION p1 VALUES IN (42,142) ENGINE = ndbcluster, PARTITION p2 VALUES IN (412) ENGINE = ndbcluster)
|
||||
--- Show table on slave ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(255) DEFAULT NULL,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 PARTITION BY LIST (id) (PARTITION p0 VALUES IN (2,4) ENGINE = InnoDB, PARTITION p1 VALUES IN (42,142) ENGINE = InnoDB, PARTITION p2 VALUES IN (412) ENGINE = InnoDB)
|
||||
--- Perform basic operation on master ---
|
||||
--- and ensure replicated correctly ---
|
||||
"--- Insert into t1 --" as "";
|
||||
--- Select from t1 on master ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Select from t1 on slave ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Update t1 on master --
|
||||
UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
|
||||
--- Check the update on master ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Check Update on slave ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Remove a record from t1 on master ---
|
||||
DELETE FROM t1 WHERE id = 42;
|
||||
--- Show current count on master for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
--- Show current count on slave for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
DELETE FROM t1;
|
||||
--- Check that simple Alter statements are replicated correctly ---
|
||||
ALTER TABLE t1 ADD PRIMARY KEY(id);
|
||||
ALTER TABLE t1 MODIFY vc TEXT;
|
||||
--- Show the new improved table on the master ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` text,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY LIST (id) (PARTITION p0 VALUES IN (2,4) ENGINE = ndbcluster, PARTITION p1 VALUES IN (42,142) ENGINE = ndbcluster, PARTITION p2 VALUES IN (412) ENGINE = ndbcluster)
|
||||
--- Make sure that our tables on slave are still same engine ---
|
||||
--- and that the alter statements replicated correctly ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` text,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 PARTITION BY LIST (id) (PARTITION p0 VALUES IN (2,4) ENGINE = InnoDB, PARTITION p1 VALUES IN (42,142) ENGINE = InnoDB, PARTITION p2 VALUES IN (412) ENGINE = InnoDB)
|
||||
--- Perform basic operation on master ---
|
||||
--- and ensure replicated correctly ---
|
||||
"--- Insert into t1 --" as "";
|
||||
--- Select from t1 on master ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Select from t1 on slave ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Update t1 on master --
|
||||
UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
|
||||
--- Check the update on master ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Check Update on slave ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Remove a record from t1 on master ---
|
||||
DELETE FROM t1 WHERE id = 42;
|
||||
--- Show current count on master for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
--- Show current count on slave for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
DELETE FROM t1;
|
||||
--- End test 3 partition LIST testing ---
|
||||
--- Do Cleanup --
|
||||
DROP TABLE IF EXISTS t1;
|
||||
--- Start test 4 partition HASH testing ---
|
||||
--- Do setup ---
|
||||
CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(255),
|
||||
bc CHAR(255), d DECIMAL(10,4) DEFAULT 0,
|
||||
f FLOAT DEFAULT 0, total BIGINT UNSIGNED,
|
||||
y YEAR, t DATE)
|
||||
PARTITION BY HASH( YEAR(t) )
|
||||
PARTITIONS 4;
|
||||
--- show that tables have been created correctly ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(255) DEFAULT NULL,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY HASH ( YEAR(t)) PARTITIONS 4
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(255) DEFAULT NULL,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 PARTITION BY HASH ( YEAR(t)) PARTITIONS 4
|
||||
--- Perform basic operation on master ---
|
||||
--- and ensure replicated correctly ---
|
||||
"--- Insert into t1 --" as "";
|
||||
--- Select from t1 on master ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Select from t1 on slave ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Update t1 on master --
|
||||
UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
|
||||
--- Check the update on master ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Check Update on slave ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Remove a record from t1 on master ---
|
||||
DELETE FROM t1 WHERE id = 42;
|
||||
--- Show current count on master for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
--- Show current count on slave for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
DELETE FROM t1;
|
||||
--- Check that simple Alter statements are replicated correctly ---
|
||||
ALTER TABLE t1 ADD PRIMARY KEY(t,id);
|
||||
ALTER TABLE t1 MODIFY vc TEXT;
|
||||
--- Show the new improved table on the master ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` text,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date NOT NULL DEFAULT '0000-00-00',
|
||||
PRIMARY KEY (`t`,`id`)
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY HASH ( YEAR(t)) PARTITIONS 4
|
||||
--- Make sure that our tables on slave are still same engine ---
|
||||
--- and that the alter statements replicated correctly ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` text,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date NOT NULL DEFAULT '0000-00-00',
|
||||
PRIMARY KEY (`t`,`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 PARTITION BY HASH ( YEAR(t)) PARTITIONS 4
|
||||
--- Perform basic operation on master ---
|
||||
--- and ensure replicated correctly ---
|
||||
"--- Insert into t1 --" as "";
|
||||
--- Select from t1 on master ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Select from t1 on slave ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Update t1 on master --
|
||||
UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
|
||||
--- Check the update on master ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Check Update on slave ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Remove a record from t1 on master ---
|
||||
DELETE FROM t1 WHERE id = 42;
|
||||
--- Show current count on master for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
--- Show current count on slave for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
DELETE FROM t1;
|
||||
--- End test 4 partition HASH testing ---
|
||||
--- Do Cleanup --
|
||||
DROP TABLE IF EXISTS t1;
|
||||
--- Start test 5 partition by key testing ---
|
||||
--- Create Table Section ---
|
||||
CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(255),
|
||||
bc CHAR(255), d DECIMAL(10,4) DEFAULT 0,
|
||||
f FLOAT DEFAULT 0, total BIGINT UNSIGNED,
|
||||
y YEAR, t DATE,PRIMARY KEY(id))
|
||||
PARTITION BY KEY()
|
||||
PARTITIONS 4;
|
||||
--- Show that tables on master are ndbcluster tables ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(255) DEFAULT NULL,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY KEY () PARTITIONS 4
|
||||
--- Show that tables on slave ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(255) DEFAULT NULL,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 PARTITION BY KEY () PARTITIONS 4
|
||||
--- Perform basic operation on master ---
|
||||
--- and ensure replicated correctly ---
|
||||
"--- Insert into t1 --" as "";
|
||||
--- Select from t1 on master ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Select from t1 on slave ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Update t1 on master --
|
||||
UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
|
||||
--- Check the update on master ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Check Update on slave ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Remove a record from t1 on master ---
|
||||
DELETE FROM t1 WHERE id = 42;
|
||||
--- Show current count on master for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
--- Show current count on slave for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
DELETE FROM t1;
|
||||
--- Check that simple Alter statements are replicated correctly ---
|
||||
ALTER TABLE t1 DROP PRIMARY KEY, ADD PRIMARY KEY(id, total);
|
||||
--- Show the new improved table on the master ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(255) DEFAULT NULL,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned NOT NULL DEFAULT '0',
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL,
|
||||
PRIMARY KEY (`id`,`total`)
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY KEY () PARTITIONS 4
|
||||
--- Make sure that our tables on slave are still right type ---
|
||||
--- and that the alter statements replicated correctly ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(255) DEFAULT NULL,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned NOT NULL DEFAULT '0',
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL,
|
||||
PRIMARY KEY (`id`,`total`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 PARTITION BY KEY () PARTITIONS 4
|
||||
--- Perform basic operation on master ---
|
||||
--- and ensure replicated correctly ---
|
||||
"--- Insert into t1 --" as "";
|
||||
--- Select from t1 on master ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Select from t1 on slave ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Update t1 on master --
|
||||
UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
|
||||
--- Check the update on master ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Check Update on slave ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Remove a record from t1 on master ---
|
||||
DELETE FROM t1 WHERE id = 42;
|
||||
--- Show current count on master for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
--- Show current count on slave for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
DELETE FROM t1;
|
||||
--- Check that simple Alter statements are replicated correctly ---
|
||||
ALTER TABLE t1 MODIFY vc TEXT;
|
||||
--- Show the new improved table on the master ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` text,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned NOT NULL DEFAULT '0',
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL,
|
||||
PRIMARY KEY (`id`,`total`)
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY KEY () PARTITIONS 4
|
||||
--- Make sure that our tables on slave are still same engine ---
|
||||
--- and that the alter statements replicated correctly ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` text,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned NOT NULL DEFAULT '0',
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL,
|
||||
PRIMARY KEY (`id`,`total`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 PARTITION BY KEY () PARTITIONS 4
|
||||
--- Perform basic operation on master ---
|
||||
--- and ensure replicated correctly ---
|
||||
"--- Insert into t1 --" as "";
|
||||
--- Select from t1 on master ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Select from t1 on slave ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Update t1 on master --
|
||||
UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
|
||||
--- Check the update on master ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Check Update on slave ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Remove a record from t1 on master ---
|
||||
DELETE FROM t1 WHERE id = 42;
|
||||
--- Show current count on master for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
--- Show current count on slave for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
DELETE FROM t1;
|
||||
--- End test 5 key partition testing ---
|
||||
--- Do Cleanup ---
|
||||
DROP TABLE IF EXISTS t1;
|
855
mysql-test/r/rpl_ndb_2myisam.result
Normal file
855
mysql-test/r/rpl_ndb_2myisam.result
Normal file
@ -0,0 +1,855 @@
|
||||
stop slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
reset master;
|
||||
reset slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
SET storage_engine=ndb;
|
||||
--- Doing pre test cleanup ---
|
||||
DROP TABLE IF EXISTS t1;
|
||||
--- Start test 1 Basic testing ---
|
||||
--- Create Table Section ---
|
||||
CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(255),
|
||||
bc CHAR(255), d DECIMAL(10,4) DEFAULT 0,
|
||||
f FLOAT DEFAULT 0, total BIGINT UNSIGNED,
|
||||
y YEAR, t DATE,PRIMARY KEY(id));
|
||||
--- Show table on master ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(255) DEFAULT NULL,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY KEY ()
|
||||
--- Show table on slave ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(255) DEFAULT NULL,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
--- Perform basic operation on master ---
|
||||
--- and ensure replicated correctly ---
|
||||
"--- Insert into t1 --" as "";
|
||||
--- Select from t1 on master ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Select from t1 on slave ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Update t1 on master --
|
||||
UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
|
||||
--- Check the update on master ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Check Update on slave ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Remove a record from t1 on master ---
|
||||
DELETE FROM t1 WHERE id = 42;
|
||||
--- Show current count on master for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
--- Show current count on slave for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
DELETE FROM t1;
|
||||
--- Check that simple Alter statements are replicated correctly --
|
||||
ALTER TABLE t1 DROP PRIMARY KEY, ADD PRIMARY KEY(id, total);
|
||||
ALTER TABLE t1 MODIFY vc TEXT;
|
||||
--- Show the new improved table on the master ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` text,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned NOT NULL DEFAULT '0',
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL,
|
||||
PRIMARY KEY (`id`,`total`)
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY KEY ()
|
||||
--- Make sure that our tables on slave are still same engine ---
|
||||
--- and that the alter statements replicated correctly ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` text,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned NOT NULL DEFAULT '0',
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL,
|
||||
PRIMARY KEY (`id`,`total`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
--- Perform basic operation on master ---
|
||||
--- and ensure replicated correctly ---
|
||||
"--- Insert into t1 --" as "";
|
||||
--- Select from t1 on master ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Select from t1 on slave ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Update t1 on master --
|
||||
UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
|
||||
--- Check the update on master ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Check Update on slave ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Remove a record from t1 on master ---
|
||||
DELETE FROM t1 WHERE id = 42;
|
||||
--- Show current count on master for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
--- Show current count on slave for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
DELETE FROM t1;
|
||||
--- End test 1 Basic testing ---
|
||||
--- Do Cleanup --
|
||||
DROP TABLE IF EXISTS t1;
|
||||
--- Start test 2 partition RANGE testing --
|
||||
--- Do setup --
|
||||
CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(255),
|
||||
bc CHAR(255), d DECIMAL(10,4) DEFAULT 0,
|
||||
f FLOAT DEFAULT 0, total BIGINT UNSIGNED,
|
||||
y YEAR, t DATE)
|
||||
PARTITION BY RANGE (YEAR(t))
|
||||
(PARTITION p0 VALUES LESS THAN (1901),
|
||||
PARTITION p1 VALUES LESS THAN (1946),
|
||||
PARTITION p2 VALUES LESS THAN (1966),
|
||||
PARTITION p3 VALUES LESS THAN (1986),
|
||||
PARTITION p4 VALUES LESS THAN (2005),
|
||||
PARTITION p5 VALUES LESS THAN MAXVALUE);
|
||||
--- Show table on master ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(255) DEFAULT NULL,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY RANGE (YEAR(t)) (PARTITION p0 VALUES LESS THAN (1901) ENGINE = ndbcluster, PARTITION p1 VALUES LESS THAN (1946) ENGINE = ndbcluster, PARTITION p2 VALUES LESS THAN (1966) ENGINE = ndbcluster, PARTITION p3 VALUES LESS THAN (1986) ENGINE = ndbcluster, PARTITION p4 VALUES LESS THAN (2005) ENGINE = ndbcluster, PARTITION p5 VALUES LESS THAN MAXVALUE ENGINE = ndbcluster)
|
||||
--- Show table on slave --
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(255) DEFAULT NULL,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 PARTITION BY RANGE (YEAR(t)) (PARTITION p0 VALUES LESS THAN (1901) ENGINE = MyISAM, PARTITION p1 VALUES LESS THAN (1946) ENGINE = MyISAM, PARTITION p2 VALUES LESS THAN (1966) ENGINE = MyISAM, PARTITION p3 VALUES LESS THAN (1986) ENGINE = MyISAM, PARTITION p4 VALUES LESS THAN (2005) ENGINE = MyISAM, PARTITION p5 VALUES LESS THAN MAXVALUE ENGINE = MyISAM)
|
||||
--- Perform basic operation on master ---
|
||||
--- and ensure replicated correctly ---
|
||||
"--- Insert into t1 --" as "";
|
||||
--- Select from t1 on master ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Select from t1 on slave ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Update t1 on master --
|
||||
UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
|
||||
--- Check the update on master ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Check Update on slave ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Remove a record from t1 on master ---
|
||||
DELETE FROM t1 WHERE id = 42;
|
||||
--- Show current count on master for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
--- Show current count on slave for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
DELETE FROM t1;
|
||||
--- Check that simple Alter statements are replicated correctly ---
|
||||
ALTER TABLE t1 ADD PRIMARY KEY(t,id);
|
||||
ALTER TABLE t1 MODIFY vc TEXT;
|
||||
--- Show the new improved table on the master ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` text,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date NOT NULL DEFAULT '0000-00-00',
|
||||
PRIMARY KEY (`t`,`id`)
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY RANGE (YEAR(t)) (PARTITION p0 VALUES LESS THAN (1901) ENGINE = ndbcluster, PARTITION p1 VALUES LESS THAN (1946) ENGINE = ndbcluster, PARTITION p2 VALUES LESS THAN (1966) ENGINE = ndbcluster, PARTITION p3 VALUES LESS THAN (1986) ENGINE = ndbcluster, PARTITION p4 VALUES LESS THAN (2005) ENGINE = ndbcluster, PARTITION p5 VALUES LESS THAN MAXVALUE ENGINE = ndbcluster)
|
||||
--- Make sure that our tables on slave are still same engine ---
|
||||
--- and that the alter statements replicated correctly ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` text,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date NOT NULL DEFAULT '0000-00-00',
|
||||
PRIMARY KEY (`t`,`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 PARTITION BY RANGE (YEAR(t)) (PARTITION p0 VALUES LESS THAN (1901) ENGINE = MyISAM, PARTITION p1 VALUES LESS THAN (1946) ENGINE = MyISAM, PARTITION p2 VALUES LESS THAN (1966) ENGINE = MyISAM, PARTITION p3 VALUES LESS THAN (1986) ENGINE = MyISAM, PARTITION p4 VALUES LESS THAN (2005) ENGINE = MyISAM, PARTITION p5 VALUES LESS THAN MAXVALUE ENGINE = MyISAM)
|
||||
--- Perform basic operation on master ---
|
||||
--- and ensure replicated correctly ---
|
||||
"--- Insert into t1 --" as "";
|
||||
--- Select from t1 on master ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Select from t1 on slave ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Update t1 on master --
|
||||
UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
|
||||
--- Check the update on master ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Check Update on slave ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Remove a record from t1 on master ---
|
||||
DELETE FROM t1 WHERE id = 42;
|
||||
--- Show current count on master for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
--- Show current count on slave for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
DELETE FROM t1;
|
||||
--- End test 2 partition RANGE testing ---
|
||||
--- Do Cleanup ---
|
||||
DROP TABLE IF EXISTS t1;
|
||||
--- Start test 3 partition LIST testing ---
|
||||
--- Do setup ---
|
||||
CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(255),
|
||||
bc CHAR(255), d DECIMAL(10,4) DEFAULT 0,
|
||||
f FLOAT DEFAULT 0, total BIGINT UNSIGNED,
|
||||
y YEAR, t DATE)
|
||||
PARTITION BY LIST(id)
|
||||
(PARTITION p0 VALUES IN (2, 4),
|
||||
PARTITION p1 VALUES IN (42, 142));
|
||||
--- Test 3 Alter to add partition ---
|
||||
ALTER TABLE t1 ADD PARTITION (PARTITION p2 VALUES IN (412));
|
||||
--- Show table on master ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(255) DEFAULT NULL,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY LIST (id) (PARTITION p0 VALUES IN (2,4) ENGINE = ndbcluster, PARTITION p1 VALUES IN (42,142) ENGINE = ndbcluster, PARTITION p2 VALUES IN (412) ENGINE = ndbcluster)
|
||||
--- Show table on slave ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(255) DEFAULT NULL,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 PARTITION BY LIST (id) (PARTITION p0 VALUES IN (2,4) ENGINE = MyISAM, PARTITION p1 VALUES IN (42,142) ENGINE = MyISAM, PARTITION p2 VALUES IN (412) ENGINE = MyISAM)
|
||||
--- Perform basic operation on master ---
|
||||
--- and ensure replicated correctly ---
|
||||
"--- Insert into t1 --" as "";
|
||||
--- Select from t1 on master ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Select from t1 on slave ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Update t1 on master --
|
||||
UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
|
||||
--- Check the update on master ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Check Update on slave ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Remove a record from t1 on master ---
|
||||
DELETE FROM t1 WHERE id = 42;
|
||||
--- Show current count on master for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
--- Show current count on slave for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
DELETE FROM t1;
|
||||
--- Check that simple Alter statements are replicated correctly ---
|
||||
ALTER TABLE t1 ADD PRIMARY KEY(id);
|
||||
ALTER TABLE t1 MODIFY vc TEXT;
|
||||
--- Show the new improved table on the master ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` text,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY LIST (id) (PARTITION p0 VALUES IN (2,4) ENGINE = ndbcluster, PARTITION p1 VALUES IN (42,142) ENGINE = ndbcluster, PARTITION p2 VALUES IN (412) ENGINE = ndbcluster)
|
||||
--- Make sure that our tables on slave are still same engine ---
|
||||
--- and that the alter statements replicated correctly ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` text,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 PARTITION BY LIST (id) (PARTITION p0 VALUES IN (2,4) ENGINE = MyISAM, PARTITION p1 VALUES IN (42,142) ENGINE = MyISAM, PARTITION p2 VALUES IN (412) ENGINE = MyISAM)
|
||||
--- Perform basic operation on master ---
|
||||
--- and ensure replicated correctly ---
|
||||
"--- Insert into t1 --" as "";
|
||||
--- Select from t1 on master ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Select from t1 on slave ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Update t1 on master --
|
||||
UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
|
||||
--- Check the update on master ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Check Update on slave ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Remove a record from t1 on master ---
|
||||
DELETE FROM t1 WHERE id = 42;
|
||||
--- Show current count on master for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
--- Show current count on slave for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
DELETE FROM t1;
|
||||
--- End test 3 partition LIST testing ---
|
||||
--- Do Cleanup --
|
||||
DROP TABLE IF EXISTS t1;
|
||||
--- Start test 4 partition HASH testing ---
|
||||
--- Do setup ---
|
||||
CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(255),
|
||||
bc CHAR(255), d DECIMAL(10,4) DEFAULT 0,
|
||||
f FLOAT DEFAULT 0, total BIGINT UNSIGNED,
|
||||
y YEAR, t DATE)
|
||||
PARTITION BY HASH( YEAR(t) )
|
||||
PARTITIONS 4;
|
||||
--- show that tables have been created correctly ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(255) DEFAULT NULL,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY HASH ( YEAR(t)) PARTITIONS 4
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(255) DEFAULT NULL,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 PARTITION BY HASH ( YEAR(t)) PARTITIONS 4
|
||||
--- Perform basic operation on master ---
|
||||
--- and ensure replicated correctly ---
|
||||
"--- Insert into t1 --" as "";
|
||||
--- Select from t1 on master ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Select from t1 on slave ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Update t1 on master --
|
||||
UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
|
||||
--- Check the update on master ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Check Update on slave ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Remove a record from t1 on master ---
|
||||
DELETE FROM t1 WHERE id = 42;
|
||||
--- Show current count on master for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
--- Show current count on slave for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
DELETE FROM t1;
|
||||
--- Check that simple Alter statements are replicated correctly ---
|
||||
ALTER TABLE t1 ADD PRIMARY KEY(t,id);
|
||||
ALTER TABLE t1 MODIFY vc TEXT;
|
||||
--- Show the new improved table on the master ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` text,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date NOT NULL DEFAULT '0000-00-00',
|
||||
PRIMARY KEY (`t`,`id`)
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY HASH ( YEAR(t)) PARTITIONS 4
|
||||
--- Make sure that our tables on slave are still same engine ---
|
||||
--- and that the alter statements replicated correctly ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` text,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date NOT NULL DEFAULT '0000-00-00',
|
||||
PRIMARY KEY (`t`,`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 PARTITION BY HASH ( YEAR(t)) PARTITIONS 4
|
||||
--- Perform basic operation on master ---
|
||||
--- and ensure replicated correctly ---
|
||||
"--- Insert into t1 --" as "";
|
||||
--- Select from t1 on master ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Select from t1 on slave ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Update t1 on master --
|
||||
UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
|
||||
--- Check the update on master ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Check Update on slave ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Remove a record from t1 on master ---
|
||||
DELETE FROM t1 WHERE id = 42;
|
||||
--- Show current count on master for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
--- Show current count on slave for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
DELETE FROM t1;
|
||||
--- End test 4 partition HASH testing ---
|
||||
--- Do Cleanup --
|
||||
DROP TABLE IF EXISTS t1;
|
||||
--- Start test 5 partition by key testing ---
|
||||
--- Create Table Section ---
|
||||
CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(255),
|
||||
bc CHAR(255), d DECIMAL(10,4) DEFAULT 0,
|
||||
f FLOAT DEFAULT 0, total BIGINT UNSIGNED,
|
||||
y YEAR, t DATE,PRIMARY KEY(id))
|
||||
PARTITION BY KEY()
|
||||
PARTITIONS 4;
|
||||
--- Show that tables on master are ndbcluster tables ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(255) DEFAULT NULL,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY KEY () PARTITIONS 4
|
||||
--- Show that tables on slave ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(255) DEFAULT NULL,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 PARTITION BY KEY () PARTITIONS 4
|
||||
--- Perform basic operation on master ---
|
||||
--- and ensure replicated correctly ---
|
||||
"--- Insert into t1 --" as "";
|
||||
--- Select from t1 on master ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Select from t1 on slave ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Update t1 on master --
|
||||
UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
|
||||
--- Check the update on master ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Check Update on slave ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Remove a record from t1 on master ---
|
||||
DELETE FROM t1 WHERE id = 42;
|
||||
--- Show current count on master for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
--- Show current count on slave for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
DELETE FROM t1;
|
||||
--- Check that simple Alter statements are replicated correctly ---
|
||||
ALTER TABLE t1 DROP PRIMARY KEY, ADD PRIMARY KEY(id, total);
|
||||
--- Show the new improved table on the master ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(255) DEFAULT NULL,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned NOT NULL DEFAULT '0',
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL,
|
||||
PRIMARY KEY (`id`,`total`)
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY KEY () PARTITIONS 4
|
||||
--- Make sure that our tables on slave are still right type ---
|
||||
--- and that the alter statements replicated correctly ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(255) DEFAULT NULL,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned NOT NULL DEFAULT '0',
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL,
|
||||
PRIMARY KEY (`id`,`total`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 PARTITION BY KEY () PARTITIONS 4
|
||||
--- Perform basic operation on master ---
|
||||
--- and ensure replicated correctly ---
|
||||
"--- Insert into t1 --" as "";
|
||||
--- Select from t1 on master ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Select from t1 on slave ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Update t1 on master --
|
||||
UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
|
||||
--- Check the update on master ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Check Update on slave ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Remove a record from t1 on master ---
|
||||
DELETE FROM t1 WHERE id = 42;
|
||||
--- Show current count on master for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
--- Show current count on slave for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
DELETE FROM t1;
|
||||
--- Check that simple Alter statements are replicated correctly ---
|
||||
ALTER TABLE t1 MODIFY vc TEXT;
|
||||
--- Show the new improved table on the master ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` text,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned NOT NULL DEFAULT '0',
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL,
|
||||
PRIMARY KEY (`id`,`total`)
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY KEY () PARTITIONS 4
|
||||
--- Make sure that our tables on slave are still same engine ---
|
||||
--- and that the alter statements replicated correctly ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` text,
|
||||
`bc` char(255) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned NOT NULL DEFAULT '0',
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL,
|
||||
PRIMARY KEY (`id`,`total`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 PARTITION BY KEY () PARTITIONS 4
|
||||
--- Perform basic operation on master ---
|
||||
--- and ensure replicated correctly ---
|
||||
"--- Insert into t1 --" as "";
|
||||
--- Select from t1 on master ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Select from t1 on slave ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Update t1 on master --
|
||||
UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
|
||||
--- Check the update on master ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Check Update on slave ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Remove a record from t1 on master ---
|
||||
DELETE FROM t1 WHERE id = 42;
|
||||
--- Show current count on master for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
--- Show current count on slave for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
DELETE FROM t1;
|
||||
--- End test 5 key partition testing ---
|
||||
--- Do Cleanup ---
|
||||
DROP TABLE IF EXISTS t1;
|
@ -122,3 +122,28 @@ select * from t1 order by nid;
|
||||
nid nom prenom
|
||||
1 DEAD ABC1
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (c1 INT KEY) ENGINE=NDB;
|
||||
INSERT INTO t1 VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
|
||||
ALTER TABLE t1 ADD c2 INT;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1 c2
|
||||
1 NULL
|
||||
2 NULL
|
||||
3 NULL
|
||||
4 NULL
|
||||
5 NULL
|
||||
6 NULL
|
||||
7 NULL
|
||||
8 NULL
|
||||
9 NULL
|
||||
10 NULL
|
||||
ALTER TABLE t1 CHANGE c2 c2 TEXT CHARACTER SET utf8;
|
||||
ALTER TABLE t1 CHANGE c2 c2 BLOB;
|
||||
SELECT * FROM t1 ORDER BY c1 LIMIT 5;
|
||||
c1 c2
|
||||
1 NULL
|
||||
2 NULL
|
||||
3 NULL
|
||||
4 NULL
|
||||
5 NULL
|
||||
DROP TABLE t1;
|
||||
|
726
mysql-test/r/rpl_ndb_dd_partitions.result
Normal file
726
mysql-test/r/rpl_ndb_dd_partitions.result
Normal file
@ -0,0 +1,726 @@
|
||||
stop slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
reset master;
|
||||
reset slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
--- Doing pre test cleanup ---
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE LOGFILE GROUP lg1
|
||||
ADD UNDOFILE 'undofile.dat'
|
||||
INITIAL_SIZE 16M
|
||||
UNDO_BUFFER_SIZE = 1M
|
||||
ENGINE=NDB;
|
||||
ALTER LOGFILE GROUP lg1
|
||||
ADD UNDOFILE 'undofile02.dat'
|
||||
INITIAL_SIZE = 4M
|
||||
ENGINE=NDB;
|
||||
CREATE TABLESPACE ts1
|
||||
ADD DATAFILE 'datafile.dat'
|
||||
USE LOGFILE GROUP lg1
|
||||
INITIAL_SIZE 12M
|
||||
ENGINE NDB;
|
||||
ALTER TABLESPACE ts1
|
||||
ADD DATAFILE 'datafile02.dat'
|
||||
INITIAL_SIZE = 4M
|
||||
ENGINE=NDB;
|
||||
--- Start test 2 partition RANGE testing --
|
||||
--- Do setup --
|
||||
CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(63),
|
||||
bc CHAR(63), d DECIMAL(10,4) DEFAULT 0,
|
||||
f FLOAT DEFAULT 0, total BIGINT UNSIGNED,
|
||||
y YEAR, t DATE)
|
||||
TABLESPACE ts1 STORAGE DISK
|
||||
ENGINE=NDB
|
||||
PARTITION BY RANGE (YEAR(t))
|
||||
(PARTITION p0 VALUES LESS THAN (1901),
|
||||
PARTITION p1 VALUES LESS THAN (1946),
|
||||
PARTITION p2 VALUES LESS THAN (1966),
|
||||
PARTITION p3 VALUES LESS THAN (1986),
|
||||
PARTITION p4 VALUES LESS THAN (2005),
|
||||
PARTITION p5 VALUES LESS THAN MAXVALUE);
|
||||
--- Show table on master ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(63) DEFAULT NULL,
|
||||
`bc` char(63) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL
|
||||
) TABLESPACE ts1 STORAGE DISK ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY RANGE (YEAR(t)) (PARTITION p0 VALUES LESS THAN (1901) ENGINE = ndbcluster, PARTITION p1 VALUES LESS THAN (1946) ENGINE = ndbcluster, PARTITION p2 VALUES LESS THAN (1966) ENGINE = ndbcluster, PARTITION p3 VALUES LESS THAN (1986) ENGINE = ndbcluster, PARTITION p4 VALUES LESS THAN (2005) ENGINE = ndbcluster, PARTITION p5 VALUES LESS THAN MAXVALUE ENGINE = ndbcluster)
|
||||
--- Show table on slave --
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(63) DEFAULT NULL,
|
||||
`bc` char(63) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL
|
||||
) TABLESPACE ts1 STORAGE DISK ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY RANGE (YEAR(t)) (PARTITION p0 VALUES LESS THAN (1901) ENGINE = ndbcluster, PARTITION p1 VALUES LESS THAN (1946) ENGINE = ndbcluster, PARTITION p2 VALUES LESS THAN (1966) ENGINE = ndbcluster, PARTITION p3 VALUES LESS THAN (1986) ENGINE = ndbcluster, PARTITION p4 VALUES LESS THAN (2005) ENGINE = ndbcluster, PARTITION p5 VALUES LESS THAN MAXVALUE ENGINE = ndbcluster)
|
||||
--- Perform basic operation on master ---
|
||||
--- and ensure replicated correctly ---
|
||||
"--- Insert into t1 --" as "";
|
||||
--- Select from t1 on master ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Select from t1 on slave ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Update t1 on master --
|
||||
UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
|
||||
--- Check the update on master ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Check Update on slave ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Remove a record from t1 on master ---
|
||||
DELETE FROM t1 WHERE id = 42;
|
||||
--- Show current count on master for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
--- Show current count on slave for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
DELETE FROM t1;
|
||||
--- Check that simple Alter statements are replicated correctly ---
|
||||
ALTER TABLE t1 MODIFY vc VARCHAR(255);
|
||||
--- Show the new improved table on the master ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(255) DEFAULT NULL,
|
||||
`bc` char(63) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY RANGE (YEAR(t)) (PARTITION p0 VALUES LESS THAN (1901) ENGINE = ndbcluster, PARTITION p1 VALUES LESS THAN (1946) ENGINE = ndbcluster, PARTITION p2 VALUES LESS THAN (1966) ENGINE = ndbcluster, PARTITION p3 VALUES LESS THAN (1986) ENGINE = ndbcluster, PARTITION p4 VALUES LESS THAN (2005) ENGINE = ndbcluster, PARTITION p5 VALUES LESS THAN MAXVALUE ENGINE = ndbcluster)
|
||||
--- Make sure that our tables on slave are still same engine ---
|
||||
--- and that the alter statements replicated correctly ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(255) DEFAULT NULL,
|
||||
`bc` char(63) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY RANGE (YEAR(t)) (PARTITION p0 VALUES LESS THAN (1901) ENGINE = ndbcluster, PARTITION p1 VALUES LESS THAN (1946) ENGINE = ndbcluster, PARTITION p2 VALUES LESS THAN (1966) ENGINE = ndbcluster, PARTITION p3 VALUES LESS THAN (1986) ENGINE = ndbcluster, PARTITION p4 VALUES LESS THAN (2005) ENGINE = ndbcluster, PARTITION p5 VALUES LESS THAN MAXVALUE ENGINE = ndbcluster)
|
||||
--- Perform basic operation on master ---
|
||||
--- and ensure replicated correctly ---
|
||||
"--- Insert into t1 --" as "";
|
||||
--- Select from t1 on master ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Select from t1 on slave ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Update t1 on master --
|
||||
UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
|
||||
--- Check the update on master ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Check Update on slave ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Remove a record from t1 on master ---
|
||||
DELETE FROM t1 WHERE id = 42;
|
||||
--- Show current count on master for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
--- Show current count on slave for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
DELETE FROM t1;
|
||||
--- End test 2 partition RANGE testing ---
|
||||
--- Do Cleanup ---
|
||||
DROP TABLE IF EXISTS t1;
|
||||
--- Start test 3 partition LIST testing ---
|
||||
--- Do setup ---
|
||||
CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(63),
|
||||
bc CHAR(63), d DECIMAL(10,4) DEFAULT 0,
|
||||
f FLOAT DEFAULT 0, total BIGINT UNSIGNED,
|
||||
y YEAR, t DATE)
|
||||
TABLESPACE ts1 STORAGE DISK
|
||||
ENGINE=NDB
|
||||
PARTITION BY LIST(id)
|
||||
(PARTITION p0 VALUES IN (2, 4),
|
||||
PARTITION p1 VALUES IN (42, 142));
|
||||
--- Test 3 Alter to add partition ---
|
||||
ALTER TABLE t1 ADD PARTITION (PARTITION p2 VALUES IN (412));
|
||||
--- Show table on master ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(63) DEFAULT NULL,
|
||||
`bc` char(63) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY LIST (id) (PARTITION p0 VALUES IN (2,4) ENGINE = ndbcluster, PARTITION p1 VALUES IN (42,142) ENGINE = ndbcluster, PARTITION p2 VALUES IN (412) ENGINE = ndbcluster)
|
||||
--- Show table on slave ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(63) DEFAULT NULL,
|
||||
`bc` char(63) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY LIST (id) (PARTITION p0 VALUES IN (2,4) ENGINE = ndbcluster, PARTITION p1 VALUES IN (42,142) ENGINE = ndbcluster, PARTITION p2 VALUES IN (412) ENGINE = ndbcluster)
|
||||
--- Perform basic operation on master ---
|
||||
--- and ensure replicated correctly ---
|
||||
"--- Insert into t1 --" as "";
|
||||
--- Select from t1 on master ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Select from t1 on slave ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Update t1 on master --
|
||||
UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
|
||||
--- Check the update on master ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Check Update on slave ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Remove a record from t1 on master ---
|
||||
DELETE FROM t1 WHERE id = 42;
|
||||
--- Show current count on master for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
--- Show current count on slave for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
DELETE FROM t1;
|
||||
--- Check that simple Alter statements are replicated correctly ---
|
||||
ALTER TABLE t1 MODIFY vc VARCHAR(255);
|
||||
--- Show the new improved table on the master ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(255) DEFAULT NULL,
|
||||
`bc` char(63) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY LIST (id) (PARTITION p0 VALUES IN (2,4) ENGINE = ndbcluster, PARTITION p1 VALUES IN (42,142) ENGINE = ndbcluster, PARTITION p2 VALUES IN (412) ENGINE = ndbcluster)
|
||||
--- Make sure that our tables on slave are still same engine ---
|
||||
--- and that the alter statements replicated correctly ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(255) DEFAULT NULL,
|
||||
`bc` char(63) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY LIST (id) (PARTITION p0 VALUES IN (2,4) ENGINE = ndbcluster, PARTITION p1 VALUES IN (42,142) ENGINE = ndbcluster, PARTITION p2 VALUES IN (412) ENGINE = ndbcluster)
|
||||
--- Perform basic operation on master ---
|
||||
--- and ensure replicated correctly ---
|
||||
"--- Insert into t1 --" as "";
|
||||
--- Select from t1 on master ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Select from t1 on slave ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Update t1 on master --
|
||||
UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
|
||||
--- Check the update on master ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Check Update on slave ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Remove a record from t1 on master ---
|
||||
DELETE FROM t1 WHERE id = 42;
|
||||
--- Show current count on master for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
--- Show current count on slave for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
DELETE FROM t1;
|
||||
--- End test 3 partition LIST testing ---
|
||||
--- Do Cleanup --
|
||||
DROP TABLE IF EXISTS t1;
|
||||
--- Start test 4 partition HASH testing ---
|
||||
--- Do setup ---
|
||||
CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(63),
|
||||
bc CHAR(63), d DECIMAL(10,4) DEFAULT 0,
|
||||
f FLOAT DEFAULT 0, total BIGINT UNSIGNED,
|
||||
y YEAR, t DATE)
|
||||
TABLESPACE ts1 STORAGE DISK
|
||||
ENGINE=NDB
|
||||
PARTITION BY HASH( YEAR(t) )
|
||||
PARTITIONS 4;
|
||||
--- show that tables have been created correctly ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(63) DEFAULT NULL,
|
||||
`bc` char(63) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL
|
||||
) TABLESPACE ts1 STORAGE DISK ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY HASH ( YEAR(t)) PARTITIONS 4
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(63) DEFAULT NULL,
|
||||
`bc` char(63) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL
|
||||
) TABLESPACE ts1 STORAGE DISK ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY HASH ( YEAR(t)) PARTITIONS 4
|
||||
--- Perform basic operation on master ---
|
||||
--- and ensure replicated correctly ---
|
||||
"--- Insert into t1 --" as "";
|
||||
--- Select from t1 on master ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Select from t1 on slave ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Update t1 on master --
|
||||
UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
|
||||
--- Check the update on master ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Check Update on slave ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Remove a record from t1 on master ---
|
||||
DELETE FROM t1 WHERE id = 42;
|
||||
--- Show current count on master for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
--- Show current count on slave for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
DELETE FROM t1;
|
||||
--- Check that simple Alter statements are replicated correctly ---
|
||||
ALTER TABLE t1 MODIFY vc VARCHAR(255);
|
||||
--- Show the new improved table on the master ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(255) DEFAULT NULL,
|
||||
`bc` char(63) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY HASH ( YEAR(t)) PARTITIONS 4
|
||||
--- Make sure that our tables on slave are still same engine ---
|
||||
--- and that the alter statements replicated correctly ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(255) DEFAULT NULL,
|
||||
`bc` char(63) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY HASH ( YEAR(t)) PARTITIONS 4
|
||||
--- Perform basic operation on master ---
|
||||
--- and ensure replicated correctly ---
|
||||
"--- Insert into t1 --" as "";
|
||||
--- Select from t1 on master ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Select from t1 on slave ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Update t1 on master --
|
||||
UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
|
||||
--- Check the update on master ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Check Update on slave ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Remove a record from t1 on master ---
|
||||
DELETE FROM t1 WHERE id = 42;
|
||||
--- Show current count on master for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
--- Show current count on slave for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
DELETE FROM t1;
|
||||
--- End test 4 partition HASH testing ---
|
||||
--- Do Cleanup --
|
||||
DROP TABLE IF EXISTS t1;
|
||||
--- Start test 5 partition by key testing ---
|
||||
--- Create Table Section ---
|
||||
CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(63),
|
||||
bc CHAR(63), d DECIMAL(10,4) DEFAULT 0,
|
||||
f FLOAT DEFAULT 0, total BIGINT UNSIGNED,
|
||||
y YEAR, t DATE,PRIMARY KEY(id))
|
||||
TABLESPACE ts1 STORAGE DISK
|
||||
ENGINE=NDB
|
||||
PARTITION BY KEY()
|
||||
PARTITIONS 4;
|
||||
--- Show that tables on master are ndbcluster tables ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(63) DEFAULT NULL,
|
||||
`bc` char(63) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) TABLESPACE ts1 STORAGE DISK ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY KEY () PARTITIONS 4
|
||||
--- Show that tables on slave ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(63) DEFAULT NULL,
|
||||
`bc` char(63) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned DEFAULT NULL,
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) TABLESPACE ts1 STORAGE DISK ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY KEY () PARTITIONS 4
|
||||
--- Perform basic operation on master ---
|
||||
--- and ensure replicated correctly ---
|
||||
"--- Insert into t1 --" as "";
|
||||
--- Select from t1 on master ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Select from t1 on slave ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Update t1 on master --
|
||||
UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
|
||||
--- Check the update on master ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Check Update on slave ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Remove a record from t1 on master ---
|
||||
DELETE FROM t1 WHERE id = 42;
|
||||
--- Show current count on master for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
--- Show current count on slave for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
DELETE FROM t1;
|
||||
--- Check that simple Alter statements are replicated correctly ---
|
||||
ALTER TABLE t1 DROP PRIMARY KEY, ADD PRIMARY KEY(id, total);
|
||||
--- Show the new improved table on the master ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(63) DEFAULT NULL,
|
||||
`bc` char(63) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned NOT NULL DEFAULT '0',
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL,
|
||||
PRIMARY KEY (`id`,`total`)
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY KEY () PARTITIONS 4
|
||||
--- Make sure that our tables on slave are still right type ---
|
||||
--- and that the alter statements replicated correctly ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(63) DEFAULT NULL,
|
||||
`bc` char(63) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned NOT NULL DEFAULT '0',
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL,
|
||||
PRIMARY KEY (`id`,`total`)
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY KEY () PARTITIONS 4
|
||||
--- Perform basic operation on master ---
|
||||
--- and ensure replicated correctly ---
|
||||
"--- Insert into t1 --" as "";
|
||||
--- Select from t1 on master ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Select from t1 on slave ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Update t1 on master --
|
||||
UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
|
||||
--- Check the update on master ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Check Update on slave ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Remove a record from t1 on master ---
|
||||
DELETE FROM t1 WHERE id = 42;
|
||||
--- Show current count on master for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
--- Show current count on slave for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
DELETE FROM t1;
|
||||
--- Check that simple Alter statements are replicated correctly ---
|
||||
ALTER TABLE t1 MODIFY vc VARCHAR(255);
|
||||
--- Show the new improved table on the master ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(255) DEFAULT NULL,
|
||||
`bc` char(63) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned NOT NULL DEFAULT '0',
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL,
|
||||
PRIMARY KEY (`id`,`total`)
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY KEY () PARTITIONS 4
|
||||
--- Make sure that our tables on slave are still same engine ---
|
||||
--- and that the alter statements replicated correctly ---
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` mediumint(9) NOT NULL,
|
||||
`b1` bit(8) DEFAULT NULL,
|
||||
`vc` varchar(255) DEFAULT NULL,
|
||||
`bc` char(63) DEFAULT NULL,
|
||||
`d` decimal(10,4) DEFAULT '0.0000',
|
||||
`f` float DEFAULT '0',
|
||||
`total` bigint(20) unsigned NOT NULL DEFAULT '0',
|
||||
`y` year(4) DEFAULT NULL,
|
||||
`t` date DEFAULT NULL,
|
||||
PRIMARY KEY (`id`,`total`)
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY KEY () PARTITIONS 4
|
||||
--- Perform basic operation on master ---
|
||||
--- and ensure replicated correctly ---
|
||||
"--- Insert into t1 --" as "";
|
||||
--- Select from t1 on master ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Select from t1 on slave ---
|
||||
select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id;
|
||||
id hex(b1) vc bc d f total y t
|
||||
2 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1965-11-14
|
||||
4 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1985-11-14
|
||||
42 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1905-11-14
|
||||
142 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 1995-11-14
|
||||
412 1 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-11-14
|
||||
--- Update t1 on master --
|
||||
UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412;
|
||||
--- Check the update on master ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Check Update on slave ---
|
||||
SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412;
|
||||
id hex(b1) vc bc d f total y t
|
||||
412 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2006-02-22
|
||||
--- Remove a record from t1 on master ---
|
||||
DELETE FROM t1 WHERE id = 42;
|
||||
--- Show current count on master for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
--- Show current count on slave for t1 ---
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
4
|
||||
DELETE FROM t1;
|
||||
--- End test 5 key partition testing ---
|
||||
--- Do Cleanup ---
|
||||
DROP TABLE IF EXISTS t1;
|
||||
alter tablespace ts1
|
||||
drop datafile 'datafile.dat'
|
||||
engine=ndb;
|
||||
alter tablespace ts1
|
||||
drop datafile 'datafile02.dat'
|
||||
engine=ndb;
|
||||
DROP TABLESPACE ts1 ENGINE=NDB;
|
||||
DROP LOGFILE GROUP lg1 ENGINE=NDB;
|
BIN
mysql-test/std_data/ndb_backup50/BACKUP-1-0.1.Data
Normal file
BIN
mysql-test/std_data/ndb_backup50/BACKUP-1-0.1.Data
Normal file
Binary file not shown.
BIN
mysql-test/std_data/ndb_backup50/BACKUP-1-0.2.Data
Normal file
BIN
mysql-test/std_data/ndb_backup50/BACKUP-1-0.2.Data
Normal file
Binary file not shown.
BIN
mysql-test/std_data/ndb_backup50/BACKUP-1.1.ctl
Normal file
BIN
mysql-test/std_data/ndb_backup50/BACKUP-1.1.ctl
Normal file
Binary file not shown.
BIN
mysql-test/std_data/ndb_backup50/BACKUP-1.1.log
Normal file
BIN
mysql-test/std_data/ndb_backup50/BACKUP-1.1.log
Normal file
Binary file not shown.
BIN
mysql-test/std_data/ndb_backup50/BACKUP-1.2.ctl
Normal file
BIN
mysql-test/std_data/ndb_backup50/BACKUP-1.2.ctl
Normal file
Binary file not shown.
BIN
mysql-test/std_data/ndb_backup50/BACKUP-1.2.log
Normal file
BIN
mysql-test/std_data/ndb_backup50/BACKUP-1.2.log
Normal file
Binary file not shown.
BIN
mysql-test/std_data/ndb_backup51/BACKUP-1-0.1.Data
Normal file
BIN
mysql-test/std_data/ndb_backup51/BACKUP-1-0.1.Data
Normal file
Binary file not shown.
BIN
mysql-test/std_data/ndb_backup51/BACKUP-1-0.2.Data
Normal file
BIN
mysql-test/std_data/ndb_backup51/BACKUP-1-0.2.Data
Normal file
Binary file not shown.
BIN
mysql-test/std_data/ndb_backup51/BACKUP-1.1.ctl
Normal file
BIN
mysql-test/std_data/ndb_backup51/BACKUP-1.1.ctl
Normal file
Binary file not shown.
BIN
mysql-test/std_data/ndb_backup51/BACKUP-1.1.log
Normal file
BIN
mysql-test/std_data/ndb_backup51/BACKUP-1.1.log
Normal file
Binary file not shown.
BIN
mysql-test/std_data/ndb_backup51/BACKUP-1.2.ctl
Normal file
BIN
mysql-test/std_data/ndb_backup51/BACKUP-1.2.ctl
Normal file
Binary file not shown.
BIN
mysql-test/std_data/ndb_backup51/BACKUP-1.2.log
Normal file
BIN
mysql-test/std_data/ndb_backup51/BACKUP-1.2.log
Normal file
Binary file not shown.
@ -21,13 +21,13 @@ ndb_cache_multi2 : BUG#18597 2006-04-10 kent simultaneous drop table an
|
||||
partition_03ndb : BUG#16385 2006-03-24 mikael Partitions: crash when updating a range partitioned NDB table
|
||||
ps_7ndb : BUG#18950 2006-02-16 jmiller create table like does not obtain LOCK_open
|
||||
rpl_deadlock_innodb : BUG#16920 2006-04-12 kent fails in show slave status (randomly)
|
||||
rpl_ndb_2innodb : BUG#19004 2006-03-22 tomas ndb: partition by range and update hangs
|
||||
rpl_ndb_2myisam : BUG#19004 2006-03-22 tomas ndb: partition by range and update hangs
|
||||
rpl_ndb_2innodb : BUG#19227 2006-04-20 pekka pk delete apparently not replicated
|
||||
rpl_ndb_2myisam : BUG#19227 2006-04-20 pekka pk delete apparently not replicated
|
||||
rpl_ndb_auto_inc : BUG#17086 2006-02-16 jmiller CR: auto_increment_increment and auto_increment_offset produce duplicate key er
|
||||
rpl_ndb_ddl : result file needs update + test needs to checked
|
||||
rpl_ndb_innodb2ndb : BUG#18094 2006-03-16 mats Slave caches invalid table definition after atlters causes select failure
|
||||
rpl_ndb_innodb2ndb : BUG#17400 2006-04-19 tomas Cluster Replication: delete & update of rows in table without pk fails on slave.
|
||||
rpl_ndb_log : BUG#18947 2006-03-21 tomas CRBR: order in binlog of create table and insert (on different table) not determ
|
||||
rpl_ndb_myisam2ndb : BUG#18094 2006-03-16 mats Slave caches invalid table definition after atlters causes select failure
|
||||
rpl_ndb_myisam2ndb : BUG#17400 2006-04-19 tomas Cluster Replication: delete & update of rows in table without pk fails on slave.
|
||||
#rpl_ndb_relay_space : BUG#16993 2006-02-16 jmiller RBR: ALTER TABLE ZEROFILL AUTO_INCREMENT is not replicated correctly
|
||||
rpl_switch_stm_row_mixed : BUG#18590 2006-03-28 brian
|
||||
#rpl_row_basic_7ndb : BUG#17400 2006-04-09 brian Cluster Replication: delete & update of rows in table without pk fails on slave.
|
||||
@ -48,7 +48,7 @@ udf : BUG#18564 2006-03-27 ian (Permission by Brian)
|
||||
#ndb_load : BUG#17233 2006-02-16 jmiller failed load data from infile causes mysqld dbug_assert, binlog not flushed
|
||||
#rpl_ndb_basic : BUG#18592 2006-03-28 brian rpl_ndb_basic failure
|
||||
#rpl_ndb_dd_advance : BUG#18924 2006-04-09 brian rpl_ndb_dd_advance failure
|
||||
rpl_ndb_dd_partitions : BUG#18094 2006-04-19 mats Slave caches invalid table definition...
|
||||
rpl_ndb_dd_partitions : fails on solaris
|
||||
#rpl_ndb_dd_basic : BUG#18569 2006-03-28 brian rpl_ndb_dd_basic failure
|
||||
#rpl_ndb_insert_ignore : BUG#18567 2006-03-28 brian rpl_ndb_insert_ignore failure
|
||||
#rpl_ndb_multi_update2 : BUG#18928 2006-04-09 brian rpl_ndb_multi_update2 failed
|
||||
|
@ -373,3 +373,38 @@ drop table if exists t2_c;
|
||||
--exec $NDB_TOOLS_DIR/ndb_select_all --no-defaults -d sys -D , SYSTAB_0 | grep 520093696, | sed "s/,$the_backup_id/,<the_backup_id>/"
|
||||
|
||||
# End of 4.1 tests
|
||||
|
||||
#
|
||||
# Bug #18594 ndb_restore log boken in 5.1
|
||||
#
|
||||
|
||||
--disable_warnings
|
||||
DROP DATABASE IF EXISTS BANK;
|
||||
--enable_warnings
|
||||
CREATE DATABASE BANK default charset=latin1 default collate=latin1_bin;
|
||||
USE BANK;
|
||||
--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults -b 1 -n 1 -p 1 -m -r $MYSQL_TEST_DIR/std_data/ndb_backup51 >> $NDB_TOOLS_OUTPUT
|
||||
--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults -b 1 -n 2 -p 1 -r $MYSQL_TEST_DIR/std_data/ndb_backup51 >> $NDB_TOOLS_OUTPUT
|
||||
SHOW TABLES;
|
||||
SELECT * FROM GL ORDER BY TIME,ACCOUNT_TYPE;
|
||||
SELECT * FROM ACCOUNT ORDER BY ACCOUNT_ID;
|
||||
SELECT COUNT(*) FROM TRANSACTION;
|
||||
SELECT * FROM SYSTEM_VALUES ORDER BY SYSTEM_VALUES_ID;
|
||||
|
||||
#
|
||||
# verify restore of 5.0 backup
|
||||
# here we must use the already created tables as restoring the old
|
||||
# table definitions will not work
|
||||
#
|
||||
TRUNCATE GL;
|
||||
TRUNCATE ACCOUNT;
|
||||
TRUNCATE TRANSACTION;
|
||||
TRUNCATE SYSTEM_VALUES;
|
||||
TRUNCATE ACCOUNT_TYPE;
|
||||
--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults -b 1 -n 1 -p 1 -r $MYSQL_TEST_DIR/std_data/ndb_backup50 >> $NDB_TOOLS_OUTPUT
|
||||
--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults -b 1 -n 2 -p 1 -r $MYSQL_TEST_DIR/std_data/ndb_backup50 >> $NDB_TOOLS_OUTPUT
|
||||
SELECT * FROM GL ORDER BY TIME,ACCOUNT_TYPE;
|
||||
SELECT * FROM ACCOUNT ORDER BY ACCOUNT_ID;
|
||||
SELECT COUNT(*) FROM TRANSACTION;
|
||||
SELECT * FROM SYSTEM_VALUES ORDER BY SYSTEM_VALUES_ID;
|
||||
DROP DATABASE BANK;
|
||||
|
@ -143,6 +143,37 @@ COMMIT;
|
||||
--connection slave
|
||||
select * from t1 order by nid;
|
||||
|
||||
# cleanup
|
||||
--connection master
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
#
|
||||
# BUG#18094
|
||||
# Slave caches invalid table definition after atlters causes select failure
|
||||
#
|
||||
--connection master
|
||||
CREATE TABLE t1 (c1 INT KEY) ENGINE=NDB;
|
||||
|
||||
INSERT INTO t1 VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
|
||||
|
||||
ALTER TABLE t1 ADD c2 INT;
|
||||
|
||||
--sync_slave_with_master
|
||||
connection slave;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
|
||||
connection master;
|
||||
ALTER TABLE t1 CHANGE c2 c2 TEXT CHARACTER SET utf8;
|
||||
ALTER TABLE t1 CHANGE c2 c2 BLOB;
|
||||
|
||||
--sync_slave_with_master
|
||||
connection slave;
|
||||
# here we would get error 1412 prior to bug
|
||||
SELECT * FROM t1 ORDER BY c1 LIMIT 5;
|
||||
|
||||
|
||||
|
||||
# cleanup
|
||||
--connection master
|
||||
DROP TABLE t1;
|
||||
|
@ -297,5 +297,14 @@ SHOW CREATE TABLE t1;
|
||||
--echo --- Do Cleanup ---
|
||||
|
||||
DROP TABLE IF EXISTS t1;
|
||||
alter tablespace ts1
|
||||
drop datafile 'datafile.dat'
|
||||
engine=ndb;
|
||||
alter tablespace ts1
|
||||
drop datafile 'datafile02.dat'
|
||||
engine=ndb;
|
||||
DROP TABLESPACE ts1 ENGINE=NDB;
|
||||
DROP LOGFILE GROUP lg1 ENGINE=NDB;
|
||||
--sync_slave_with_master
|
||||
|
||||
# End of 5.1 test case
|
||||
|
@ -315,6 +315,14 @@ int execute_no_commit_ie(ha_ndbcluster *h, NdbTransaction *trans)
|
||||
/*
|
||||
Place holder for ha_ndbcluster thread specific data
|
||||
*/
|
||||
static
|
||||
byte *thd_ndb_share_get_key(THD_NDB_SHARE *thd_ndb_share, uint *length,
|
||||
my_bool not_used __attribute__((unused)))
|
||||
{
|
||||
*length= sizeof(thd_ndb_share->key);
|
||||
return (byte*) thd_ndb_share->key;
|
||||
}
|
||||
|
||||
Thd_ndb::Thd_ndb()
|
||||
{
|
||||
ndb= new Ndb(g_ndb_cluster_connection, "");
|
||||
@ -324,6 +332,8 @@ Thd_ndb::Thd_ndb()
|
||||
stmt= NULL;
|
||||
error= 0;
|
||||
options= 0;
|
||||
(void) hash_init(&open_tables, &my_charset_bin, 5, 0, 0,
|
||||
(hash_get_key)thd_ndb_share_get_key, 0, 0);
|
||||
}
|
||||
|
||||
Thd_ndb::~Thd_ndb()
|
||||
@ -347,6 +357,44 @@ Thd_ndb::~Thd_ndb()
|
||||
ndb= NULL;
|
||||
}
|
||||
changed_tables.empty();
|
||||
hash_free(&open_tables);
|
||||
}
|
||||
|
||||
void
|
||||
Thd_ndb::init_open_tables()
|
||||
{
|
||||
count= 0;
|
||||
error= 0;
|
||||
my_hash_reset(&open_tables);
|
||||
}
|
||||
|
||||
THD_NDB_SHARE *
|
||||
Thd_ndb::get_open_table(THD *thd, const void *key)
|
||||
{
|
||||
DBUG_ENTER("Thd_ndb::get_open_table");
|
||||
HASH_SEARCH_STATE state;
|
||||
THD_NDB_SHARE *thd_ndb_share=
|
||||
(THD_NDB_SHARE*)hash_first(&open_tables, (byte *)key, sizeof(key), &state);
|
||||
while (thd_ndb_share && thd_ndb_share->key != key)
|
||||
thd_ndb_share= (THD_NDB_SHARE*)hash_next(&open_tables, (byte *)key, sizeof(key), &state);
|
||||
if (thd_ndb_share == 0)
|
||||
{
|
||||
thd_ndb_share= (THD_NDB_SHARE *) alloc_root(&thd->transaction.mem_root,
|
||||
sizeof(THD_NDB_SHARE));
|
||||
thd_ndb_share->key= key;
|
||||
thd_ndb_share->stat.last_count= count;
|
||||
thd_ndb_share->stat.no_uncommitted_rows_count= 0;
|
||||
thd_ndb_share->stat.records == ~(ha_rows)0;
|
||||
my_hash_insert(&open_tables, (byte *)thd_ndb_share);
|
||||
}
|
||||
else if (thd_ndb_share->stat.last_count != count)
|
||||
{
|
||||
thd_ndb_share->stat.last_count= count;
|
||||
thd_ndb_share->stat.no_uncommitted_rows_count= 0;
|
||||
thd_ndb_share->stat.records == ~(ha_rows)0;
|
||||
}
|
||||
DBUG_PRINT("exit", ("thd_ndb_share: 0x%x key: 0x%x", thd_ndb_share, key));
|
||||
DBUG_RETURN(thd_ndb_share);
|
||||
}
|
||||
|
||||
inline
|
||||
@ -359,12 +407,6 @@ Ndb *ha_ndbcluster::get_ndb()
|
||||
* manage uncommitted insert/deletes during transactio to get records correct
|
||||
*/
|
||||
|
||||
struct Ndb_local_table_statistics {
|
||||
int no_uncommitted_rows_count;
|
||||
ulong last_count;
|
||||
ha_rows records;
|
||||
};
|
||||
|
||||
void ha_ndbcluster::set_rec_per_key()
|
||||
{
|
||||
DBUG_ENTER("ha_ndbcluster::get_status_const");
|
||||
@ -380,14 +422,14 @@ void ha_ndbcluster::records_update()
|
||||
if (m_ha_not_exact_count)
|
||||
return;
|
||||
DBUG_ENTER("ha_ndbcluster::records_update");
|
||||
struct Ndb_local_table_statistics *info=
|
||||
(struct Ndb_local_table_statistics *)m_table_info;
|
||||
struct Ndb_local_table_statistics *info= m_table_info;
|
||||
DBUG_PRINT("info", ("id=%d, no_uncommitted_rows_count=%d",
|
||||
((const NDBTAB *)m_table)->getTableId(),
|
||||
info->no_uncommitted_rows_count));
|
||||
// if (info->records == ~(ha_rows)0)
|
||||
{
|
||||
Ndb *ndb= get_ndb();
|
||||
ndb->setDatabaseName(m_dbname);
|
||||
struct Ndb_statistics stat;
|
||||
if (ndb_get_table_statistics(ndb, m_tabname, &stat) == 0){
|
||||
mean_rec_length= stat.row_size;
|
||||
@ -413,33 +455,12 @@ void ha_ndbcluster::no_uncommitted_rows_execute_failure()
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
void ha_ndbcluster::no_uncommitted_rows_init(THD *thd)
|
||||
{
|
||||
if (m_ha_not_exact_count)
|
||||
return;
|
||||
DBUG_ENTER("ha_ndbcluster::no_uncommitted_rows_init");
|
||||
struct Ndb_local_table_statistics *info=
|
||||
(struct Ndb_local_table_statistics *)m_table_info;
|
||||
Thd_ndb *thd_ndb= get_thd_ndb(thd);
|
||||
if (info->last_count != thd_ndb->count)
|
||||
{
|
||||
info->last_count= thd_ndb->count;
|
||||
info->no_uncommitted_rows_count= 0;
|
||||
info->records= ~(ha_rows)0;
|
||||
DBUG_PRINT("info", ("id=%d, no_uncommitted_rows_count=%d",
|
||||
((const NDBTAB *)m_table)->getTableId(),
|
||||
info->no_uncommitted_rows_count));
|
||||
}
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
void ha_ndbcluster::no_uncommitted_rows_update(int c)
|
||||
{
|
||||
if (m_ha_not_exact_count)
|
||||
return;
|
||||
DBUG_ENTER("ha_ndbcluster::no_uncommitted_rows_update");
|
||||
struct Ndb_local_table_statistics *info=
|
||||
(struct Ndb_local_table_statistics *)m_table_info;
|
||||
struct Ndb_local_table_statistics *info= m_table_info;
|
||||
info->no_uncommitted_rows_count+= c;
|
||||
DBUG_PRINT("info", ("id=%d, no_uncommitted_rows_count=%d",
|
||||
((const NDBTAB *)m_table)->getTableId(),
|
||||
@ -466,7 +487,7 @@ void ha_ndbcluster::no_uncommitted_rows_reset(THD *thd)
|
||||
# The mapped error code
|
||||
*/
|
||||
|
||||
int ha_ndbcluster::invalidate_dictionary_cache(bool global)
|
||||
int ha_ndbcluster::invalidate_dictionary_cache(bool global, const NDBTAB *ndbtab)
|
||||
{
|
||||
NDBDICT *dict= get_ndb()->getDictionary();
|
||||
DBUG_ENTER("invalidate_dictionary_cache");
|
||||
@ -494,20 +515,17 @@ int ha_ndbcluster::invalidate_dictionary_cache(bool global)
|
||||
DBUG_PRINT("info", ("Released ndbcluster mutex"));
|
||||
}
|
||||
#endif
|
||||
const NDBTAB *tab= dict->getTable(m_tabname);
|
||||
if (!tab)
|
||||
DBUG_RETURN(1);
|
||||
if (tab->getObjectStatus() == NdbDictionary::Object::Invalid)
|
||||
if (!ndbtab)
|
||||
{
|
||||
// Global cache has already been invalidated
|
||||
dict->removeCachedTable(m_tabname);
|
||||
global= FALSE;
|
||||
DBUG_PRINT("info", ("global: %d", global));
|
||||
ndbtab= dict->getTable(m_tabname);
|
||||
if (!ndbtab)
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
else
|
||||
dict->invalidateTable(m_tabname);
|
||||
dict->invalidateTable(ndbtab);
|
||||
table_share->version= 0L; /* Free when thread is ready */
|
||||
}
|
||||
else if (ndbtab)
|
||||
dict->removeCachedTable(ndbtab);
|
||||
else
|
||||
dict->removeCachedTable(m_tabname);
|
||||
|
||||
@ -564,7 +582,7 @@ int ha_ndbcluster::ndb_err(NdbTransaction *trans)
|
||||
table_list.alias= table_list.table_name= m_tabname;
|
||||
close_cached_tables(current_thd, 0, &table_list);
|
||||
|
||||
invalidate_dictionary_cache(TRUE);
|
||||
invalidate_dictionary_cache(TRUE, m_table);
|
||||
|
||||
if (err.code==284)
|
||||
{
|
||||
@ -1041,7 +1059,7 @@ int ha_ndbcluster::get_metadata(const char *path)
|
||||
// Check if thread has stale local cache
|
||||
if (tab->getObjectStatus() == NdbDictionary::Object::Invalid)
|
||||
{
|
||||
invalidate_dictionary_cache(FALSE);
|
||||
invalidate_dictionary_cache(FALSE, tab);
|
||||
if (!(tab= dict->getTable(m_tabname)))
|
||||
ERR_RETURN(dict->getNdbError());
|
||||
DBUG_PRINT("info", ("Table schema version: %d", tab->getObjectVersion()));
|
||||
@ -1064,7 +1082,7 @@ int ha_ndbcluster::get_metadata(const char *path)
|
||||
if (!invalidating_ndb_table)
|
||||
{
|
||||
DBUG_PRINT("info", ("Invalidating table"));
|
||||
invalidate_dictionary_cache(TRUE);
|
||||
invalidate_dictionary_cache(TRUE, tab);
|
||||
invalidating_ndb_table= TRUE;
|
||||
}
|
||||
else
|
||||
@ -1091,7 +1109,7 @@ int ha_ndbcluster::get_metadata(const char *path)
|
||||
DBUG_RETURN(error);
|
||||
|
||||
m_table_version= tab->getObjectVersion();
|
||||
m_table= (void *)tab;
|
||||
m_table= tab;
|
||||
m_table_info= NULL; // Set in external lock
|
||||
|
||||
DBUG_RETURN(open_indexes(ndb, table, FALSE));
|
||||
@ -1150,7 +1168,7 @@ int ha_ndbcluster::table_changed(const void *pack_frm_data, uint pack_frm_len)
|
||||
// Check if thread has stale local cache
|
||||
if (orig_tab->getObjectStatus() == NdbDictionary::Object::Invalid)
|
||||
{
|
||||
dict->removeCachedTable(m_tabname);
|
||||
dict->removeCachedTable(orig_tab);
|
||||
if (!(orig_tab= dict->getTable(m_tabname)))
|
||||
ERR_RETURN(dict->getNdbError());
|
||||
}
|
||||
@ -1219,13 +1237,31 @@ int ha_ndbcluster::add_index_handle(THD *thd, NDBDICT *dict, KEY *key_info,
|
||||
int error= 0;
|
||||
NDB_INDEX_TYPE idx_type= get_index_type_from_table(index_no);
|
||||
m_index[index_no].type= idx_type;
|
||||
DBUG_ENTER("ha_ndbcluster::get_index_handle");
|
||||
DBUG_ENTER("ha_ndbcluster::add_index_handle");
|
||||
DBUG_PRINT("enter", ("table %s", m_tabname));
|
||||
|
||||
if (idx_type != PRIMARY_KEY_INDEX && idx_type != UNIQUE_INDEX)
|
||||
{
|
||||
DBUG_PRINT("info", ("Get handle to index %s", index_name));
|
||||
const NDBINDEX *index= dict->getIndex(index_name, m_tabname);
|
||||
if (!index) ERR_RETURN(dict->getNdbError());
|
||||
const NDBINDEX *index;
|
||||
do
|
||||
{
|
||||
index= dict->getIndex(index_name, m_tabname);
|
||||
if (!index)
|
||||
ERR_RETURN(dict->getNdbError());
|
||||
DBUG_PRINT("info", ("index: 0x%x id: %d version: %d.%d status: %d",
|
||||
index,
|
||||
index->getObjectId(),
|
||||
index->getObjectVersion() & 0xFFFFFF,
|
||||
index->getObjectVersion() >> 24,
|
||||
index->getObjectStatus()));
|
||||
if (index->getObjectStatus() != NdbDictionary::Object::Retrieved)
|
||||
{
|
||||
dict->removeCachedIndex(index);
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
} while (1);
|
||||
m_index[index_no].index= (void *) index;
|
||||
// ordered index - add stats
|
||||
NDB_INDEX_DATA& d=m_index[index_no];
|
||||
@ -1254,8 +1290,25 @@ int ha_ndbcluster::add_index_handle(THD *thd, NDBDICT *dict, KEY *key_info,
|
||||
m_has_unique_index= TRUE;
|
||||
strxnmov(unique_index_name, FN_LEN, index_name, unique_suffix, NullS);
|
||||
DBUG_PRINT("info", ("Get handle to unique_index %s", unique_index_name));
|
||||
const NDBINDEX *index= dict->getIndex(unique_index_name, m_tabname);
|
||||
if (!index) ERR_RETURN(dict->getNdbError());
|
||||
const NDBINDEX *index;
|
||||
do
|
||||
{
|
||||
index= dict->getIndex(unique_index_name, m_tabname);
|
||||
if (!index)
|
||||
ERR_RETURN(dict->getNdbError());
|
||||
DBUG_PRINT("info", ("index: 0x%x id: %d version: %d.%d status: %d",
|
||||
index,
|
||||
index->getObjectId(),
|
||||
index->getObjectVersion() & 0xFFFFFF,
|
||||
index->getObjectVersion() >> 24,
|
||||
index->getObjectStatus()));
|
||||
if (index->getObjectStatus() != NdbDictionary::Object::Retrieved)
|
||||
{
|
||||
dict->removeCachedIndex(index);
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
} while (1);
|
||||
m_index[index_no].unique_index= (void *) index;
|
||||
error= fix_unique_index_attr_order(m_index[index_no], index, key_info);
|
||||
}
|
||||
@ -3544,6 +3597,7 @@ void ha_ndbcluster::info(uint flag)
|
||||
if ((my_errno= check_ndb_connection()))
|
||||
DBUG_VOID_RETURN;
|
||||
Ndb *ndb= get_ndb();
|
||||
ndb->setDatabaseName(m_dbname);
|
||||
struct Ndb_statistics stat;
|
||||
if (current_thd->variables.ndb_use_exact_count &&
|
||||
ndb_get_table_statistics(ndb, m_tabname, &stat) == 0)
|
||||
@ -3883,7 +3937,7 @@ int ha_ndbcluster::external_lock(THD *thd, int lock_type)
|
||||
trans= ndb->startTransaction();
|
||||
if (trans == NULL)
|
||||
ERR_RETURN(ndb->getNdbError());
|
||||
no_uncommitted_rows_reset(thd);
|
||||
thd_ndb->init_open_tables();
|
||||
thd_ndb->stmt= trans;
|
||||
trans_register_ha(thd, FALSE, &ndbcluster_hton);
|
||||
}
|
||||
@ -3898,7 +3952,7 @@ int ha_ndbcluster::external_lock(THD *thd, int lock_type)
|
||||
trans= ndb->startTransaction();
|
||||
if (trans == NULL)
|
||||
ERR_RETURN(ndb->getNdbError());
|
||||
no_uncommitted_rows_reset(thd);
|
||||
thd_ndb->init_open_tables();
|
||||
thd_ndb->all= trans;
|
||||
trans_register_ha(thd, TRUE, &ndbcluster_hton);
|
||||
|
||||
@ -3943,8 +3997,7 @@ int ha_ndbcluster::external_lock(THD *thd, int lock_type)
|
||||
{
|
||||
NDBDICT *dict= ndb->getDictionary();
|
||||
const NDBTAB *tab;
|
||||
void *tab_info;
|
||||
if (!(tab= dict->getTable(m_tabname, &tab_info)))
|
||||
if (!(tab= dict->getTable(m_tabname)))
|
||||
ERR_RETURN(dict->getNdbError());
|
||||
DBUG_PRINT("info", ("Table schema version: %d",
|
||||
tab->getObjectVersion()));
|
||||
@ -3954,8 +4007,8 @@ int ha_ndbcluster::external_lock(THD *thd, int lock_type)
|
||||
if ((trans && tab->getObjectStatus() != NdbDictionary::Object::Retrieved)
|
||||
|| tab->getObjectStatus() == NdbDictionary::Object::Invalid)
|
||||
{
|
||||
invalidate_dictionary_cache(FALSE);
|
||||
if (!(tab= dict->getTable(m_tabname, &tab_info)))
|
||||
invalidate_dictionary_cache(FALSE, tab);
|
||||
if (!(tab= dict->getTable(m_tabname)))
|
||||
ERR_RETURN(dict->getNdbError());
|
||||
DBUG_PRINT("info", ("Table schema version: %d",
|
||||
tab->getObjectVersion()));
|
||||
@ -3970,14 +4023,14 @@ int ha_ndbcluster::external_lock(THD *thd, int lock_type)
|
||||
}
|
||||
if (m_table != (void *)tab)
|
||||
{
|
||||
m_table= (void *)tab;
|
||||
m_table= tab;
|
||||
m_table_version = tab->getObjectVersion();
|
||||
if (!(my_errno= open_indexes(ndb, table, FALSE)))
|
||||
DBUG_RETURN(my_errno);
|
||||
}
|
||||
m_table_info= tab_info;
|
||||
}
|
||||
no_uncommitted_rows_init(thd);
|
||||
m_thd_ndb_share= thd_ndb->get_open_table(thd, m_table);
|
||||
m_table_info= &m_thd_ndb_share->stat;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -4990,7 +5043,7 @@ int ha_ndbcluster::rename_table(const char *from, const char *to)
|
||||
// Check if thread has stale local cache
|
||||
if (orig_tab->getObjectStatus() == NdbDictionary::Object::Invalid)
|
||||
{
|
||||
dict->removeCachedTable(m_tabname);
|
||||
dict->removeCachedTable(orig_tab);
|
||||
if (!(orig_tab= dict->getTable(m_tabname)))
|
||||
ERR_RETURN(dict->getNdbError());
|
||||
}
|
||||
@ -5002,7 +5055,7 @@ int ha_ndbcluster::rename_table(const char *from, const char *to)
|
||||
DBUG_ASSERT(r == 0);
|
||||
}
|
||||
#endif
|
||||
m_table= (void *)orig_tab;
|
||||
m_table= orig_tab;
|
||||
// Change current database to that of target table
|
||||
set_dbname(to);
|
||||
ndb->setDatabaseName(m_dbname);
|
||||
@ -5518,9 +5571,6 @@ Thd_ndb* ha_ndbcluster::seize_thd_ndb()
|
||||
DBUG_ENTER("seize_thd_ndb");
|
||||
|
||||
thd_ndb= new Thd_ndb();
|
||||
thd_ndb->ndb->getDictionary()->set_local_table_data_size(
|
||||
sizeof(Ndb_local_table_statistics)
|
||||
);
|
||||
if (thd_ndb->ndb->init(max_transactions) != 0)
|
||||
{
|
||||
ERR_PRINT(thd_ndb->ndb->getNdbError());
|
||||
@ -5610,7 +5660,6 @@ int ndbcluster_discover(THD* thd, const char *db, const char *name,
|
||||
DBUG_RETURN(HA_ERR_NO_CONNECTION);
|
||||
ndb->setDatabaseName(db);
|
||||
NDBDICT* dict= ndb->getDictionary();
|
||||
dict->set_local_table_data_size(sizeof(Ndb_local_table_statistics));
|
||||
dict->invalidateTable(name);
|
||||
build_table_filename(key, sizeof(key), db, name, "");
|
||||
NDB_SHARE *share= get_share(key, 0, false);
|
||||
@ -5682,7 +5731,6 @@ int ndbcluster_table_exists_in_engine(THD* thd, const char *db, const char *name
|
||||
ndb->setDatabaseName(db);
|
||||
|
||||
NDBDICT* dict= ndb->getDictionary();
|
||||
dict->set_local_table_data_size(sizeof(Ndb_local_table_statistics));
|
||||
dict->invalidateTable(name);
|
||||
if (!(tab= dict->getTable(name)))
|
||||
{
|
||||
@ -6180,7 +6228,6 @@ static bool ndbcluster_init()
|
||||
DBUG_PRINT("error", ("failed to create global ndb object"));
|
||||
goto ndbcluster_init_error;
|
||||
}
|
||||
g_ndb->getDictionary()->set_local_table_data_size(sizeof(Ndb_local_table_statistics));
|
||||
if (g_ndb->init() != 0)
|
||||
{
|
||||
ERR_PRINT (g_ndb->getNdbError());
|
||||
@ -6475,8 +6522,7 @@ ha_ndbcluster::records_in_range(uint inx, key_range *min_key,
|
||||
{
|
||||
// We must provide approx table rows
|
||||
Uint64 table_rows=0;
|
||||
Ndb_local_table_statistics *info=
|
||||
(Ndb_local_table_statistics *)m_table_info;
|
||||
Ndb_local_table_statistics *info= m_table_info;
|
||||
if (info->records != ~(ha_rows)0 && info->records != 0)
|
||||
{
|
||||
table_rows = info->records;
|
||||
@ -9988,7 +10034,7 @@ bool ha_ndbcluster::get_no_parts(const char *name, uint *no_parts)
|
||||
// Check if thread has stale local cache
|
||||
if (tab->getObjectStatus() == NdbDictionary::Object::Invalid)
|
||||
{
|
||||
invalidate_dictionary_cache(FALSE);
|
||||
invalidate_dictionary_cache(FALSE, tab);
|
||||
if (!(tab= dict->getTable(m_tabname)))
|
||||
ERR_BREAK(dict->getNdbError(), err);
|
||||
}
|
||||
|
@ -523,11 +523,26 @@ enum THD_NDB_OPTIONS
|
||||
TNO_NO_LOG_SCHEMA_OP= 1 << 0
|
||||
};
|
||||
|
||||
struct Ndb_local_table_statistics {
|
||||
int no_uncommitted_rows_count;
|
||||
ulong last_count;
|
||||
ha_rows records;
|
||||
};
|
||||
|
||||
typedef struct st_thd_ndb_share {
|
||||
const void *key;
|
||||
struct Ndb_local_table_statistics stat;
|
||||
} THD_NDB_SHARE;
|
||||
|
||||
class Thd_ndb
|
||||
{
|
||||
public:
|
||||
Thd_ndb();
|
||||
~Thd_ndb();
|
||||
|
||||
void init_open_tables();
|
||||
THD_NDB_SHARE *get_open_table(THD *thd, const void *key);
|
||||
|
||||
Ndb *ndb;
|
||||
ulong count;
|
||||
uint lock_count;
|
||||
@ -536,6 +551,7 @@ class Thd_ndb
|
||||
int error;
|
||||
uint32 options;
|
||||
List<NDB_SHARE> changed_tables;
|
||||
HASH open_tables;
|
||||
};
|
||||
|
||||
class ha_ndbcluster: public handler
|
||||
@ -778,7 +794,8 @@ private:
|
||||
void print_results();
|
||||
|
||||
ulonglong get_auto_increment();
|
||||
int invalidate_dictionary_cache(bool global);
|
||||
int invalidate_dictionary_cache(bool global,
|
||||
const NdbDictionary::Table *ndbtab);
|
||||
int ndb_err(NdbTransaction*);
|
||||
bool uses_blob_value();
|
||||
|
||||
@ -792,7 +809,6 @@ private:
|
||||
void records_update();
|
||||
void no_uncommitted_rows_execute_failure();
|
||||
void no_uncommitted_rows_update(int);
|
||||
void no_uncommitted_rows_init(THD *);
|
||||
void no_uncommitted_rows_reset(THD *);
|
||||
|
||||
/*
|
||||
@ -816,9 +832,9 @@ private:
|
||||
|
||||
NdbTransaction *m_active_trans;
|
||||
NdbScanOperation *m_active_cursor;
|
||||
void *m_table;
|
||||
const NdbDictionary::Table *m_table;
|
||||
int m_table_version;
|
||||
void *m_table_info;
|
||||
struct Ndb_local_table_statistics *m_table_info;
|
||||
char m_dbname[FN_HEADLEN];
|
||||
//char m_schemaname[FN_HEADLEN];
|
||||
char m_tabname[FN_HEADLEN];
|
||||
@ -826,6 +842,7 @@ private:
|
||||
THR_LOCK_DATA m_lock;
|
||||
NDB_SHARE *m_share;
|
||||
NDB_INDEX_DATA m_index[MAX_KEY];
|
||||
THD_NDB_SHARE *m_thd_ndb_share;
|
||||
// NdbRecAttr has no reference to blob
|
||||
NdbValue m_value[NDB_MAX_ATTRIBUTES_IN_TABLE];
|
||||
byte m_ref[NDB_HIDDEN_PRIMARY_KEY_LENGTH];
|
||||
|
@ -1068,20 +1068,27 @@ int ndbcluster_log_schema_op(THD *thd, NDB_SHARE *share,
|
||||
MY_BITMAP schema_subscribers;
|
||||
uint32 bitbuf[sizeof(ndb_schema_object->slock)/4];
|
||||
{
|
||||
int i;
|
||||
int i, updated= 0;
|
||||
int no_storage_nodes= g_ndb_cluster_connection->no_db_nodes();
|
||||
bitmap_init(&schema_subscribers, bitbuf, sizeof(bitbuf)*8, false);
|
||||
bitmap_set_all(&schema_subscribers);
|
||||
(void) pthread_mutex_lock(&schema_share->mutex);
|
||||
for (i= 0; i < ndb_number_of_storage_nodes; i++)
|
||||
for (i= 0; i < no_storage_nodes; i++)
|
||||
{
|
||||
MY_BITMAP *table_subscribers= &schema_share->subscriber_bitmap[i];
|
||||
if (!bitmap_is_clear_all(table_subscribers))
|
||||
{
|
||||
bitmap_intersect(&schema_subscribers,
|
||||
table_subscribers);
|
||||
updated= 1;
|
||||
}
|
||||
}
|
||||
(void) pthread_mutex_unlock(&schema_share->mutex);
|
||||
bitmap_clear_bit(&schema_subscribers, node_id);
|
||||
|
||||
if (updated)
|
||||
bitmap_clear_bit(&schema_subscribers, node_id);
|
||||
else
|
||||
bitmap_clear_all(&schema_subscribers);
|
||||
|
||||
if (ndb_schema_object)
|
||||
{
|
||||
(void) pthread_mutex_lock(&ndb_schema_object->mutex);
|
||||
@ -1227,13 +1234,14 @@ end:
|
||||
{
|
||||
struct timespec abstime;
|
||||
int i;
|
||||
int no_storage_nodes= g_ndb_cluster_connection->no_db_nodes();
|
||||
set_timespec(abstime, 1);
|
||||
int ret= pthread_cond_timedwait(&injector_cond,
|
||||
&ndb_schema_object->mutex,
|
||||
&abstime);
|
||||
|
||||
(void) pthread_mutex_lock(&schema_share->mutex);
|
||||
for (i= 0; i < ndb_number_of_storage_nodes; i++)
|
||||
for (i= 0; i < no_storage_nodes; i++)
|
||||
{
|
||||
/* remove any unsubscribed from schema_subscribers */
|
||||
MY_BITMAP *tmp= &schema_share->subscriber_bitmap[i];
|
||||
@ -1466,7 +1474,7 @@ ndb_handle_schema_change(THD *thd, Ndb *ndb, NdbEventOperation *pOp,
|
||||
(void)strxmov(table_handler.m_dbname, dbname, NullS);
|
||||
(void)strxmov(table_handler.m_tabname, tabname, NullS);
|
||||
table_handler.open_indexes(ndb, table, TRUE);
|
||||
table_handler.invalidate_dictionary_cache(TRUE);
|
||||
table_handler.invalidate_dictionary_cache(TRUE, 0);
|
||||
thd_ndb->ndb= old_ndb;
|
||||
|
||||
/*
|
||||
@ -1555,7 +1563,7 @@ ndb_handle_schema_change(THD *thd, Ndb *ndb, NdbEventOperation *pOp,
|
||||
table_handler.set_dbname(share->key);
|
||||
table_handler.set_tabname(share->key);
|
||||
table_handler.open_indexes(ndb, table, TRUE);
|
||||
table_handler.invalidate_dictionary_cache(TRUE);
|
||||
table_handler.invalidate_dictionary_cache(TRUE, 0);
|
||||
thd_ndb->ndb= old_ndb;
|
||||
}
|
||||
DBUG_ASSERT(share->op == pOp || share->op_old == pOp);
|
||||
@ -3189,7 +3197,8 @@ pthread_handler_t ndb_binlog_thread_func(void *arg)
|
||||
thd->proc_info= "Waiting for ndbcluster to start";
|
||||
|
||||
pthread_mutex_lock(&injector_mutex);
|
||||
while (!schema_share || !apply_status_share)
|
||||
while (!schema_share ||
|
||||
(ndb_binlog_running && !apply_status_share))
|
||||
{
|
||||
/* ndb not connected yet */
|
||||
struct timespec abstime;
|
||||
|
@ -1745,11 +1745,15 @@ public:
|
||||
const char * tableName);
|
||||
|
||||
#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
|
||||
void removeCachedTable(const Table *table);
|
||||
void removeCachedIndex(const Index *index);
|
||||
void invalidateTable(const Table *table);
|
||||
/**
|
||||
* Invalidate cached index object
|
||||
*/
|
||||
void invalidateIndex(const char * indexName,
|
||||
const char * tableName);
|
||||
void invalidateIndex(const Index *index);
|
||||
/**
|
||||
* Force gcp and wait for gcp complete
|
||||
*/
|
||||
|
@ -144,6 +144,17 @@ struct BackupFormat {
|
||||
// If TriggerEvent & 0x10000 == true then GCI is right after data
|
||||
Uint32 TriggerEvent;
|
||||
Uint32 FragId;
|
||||
Uint32 Data[1]; // Len = Length - 3
|
||||
};
|
||||
|
||||
/**
|
||||
* Log Entry pre NDBD_FRAGID_VERSION
|
||||
*/
|
||||
struct LogEntry_no_fragid {
|
||||
Uint32 Length;
|
||||
Uint32 TableId;
|
||||
// If TriggerEvent & 0x10000 == true then GCI is right after data
|
||||
Uint32 TriggerEvent;
|
||||
Uint32 Data[1]; // Len = Length - 2
|
||||
};
|
||||
};
|
||||
|
@ -5016,12 +5016,13 @@ void Dblqh::packLqhkeyreqLab(Signal* signal)
|
||||
|
||||
Uint32 nextNodeId = regTcPtr->nextReplica;
|
||||
Uint32 nextVersion = getNodeInfo(nextNodeId).m_version;
|
||||
UintR TAiLen = regTcPtr->reclenAiLqhkey;
|
||||
|
||||
UintR TapplAddressIndicator = (regTcPtr->nextSeqNoReplica == 0 ? 0 : 1);
|
||||
LqhKeyReq::setApplicationAddressFlag(Treqinfo, TapplAddressIndicator);
|
||||
LqhKeyReq::setInterpretedFlag(Treqinfo, regTcPtr->opExec);
|
||||
LqhKeyReq::setSeqNoReplica(Treqinfo, regTcPtr->nextSeqNoReplica);
|
||||
LqhKeyReq::setAIInLqhKeyReq(Treqinfo, regTcPtr->reclenAiLqhkey);
|
||||
LqhKeyReq::setAIInLqhKeyReq(Treqinfo, TAiLen);
|
||||
|
||||
if (unlikely(nextVersion < NDBD_ROWID_VERSION))
|
||||
{
|
||||
@ -5124,22 +5125,32 @@ void Dblqh::packLqhkeyreqLab(Signal* signal)
|
||||
lqhKeyReq->variableData[nextPos + 0] = sig0;
|
||||
nextPos += LqhKeyReq::getGCIFlag(Treqinfo);
|
||||
|
||||
sig0 = regTcPtr->firstAttrinfo[0];
|
||||
sig1 = regTcPtr->firstAttrinfo[1];
|
||||
sig2 = regTcPtr->firstAttrinfo[2];
|
||||
sig3 = regTcPtr->firstAttrinfo[3];
|
||||
sig4 = regTcPtr->firstAttrinfo[4];
|
||||
UintR TAiLen = regTcPtr->reclenAiLqhkey;
|
||||
BlockReference lqhRef = calcLqhBlockRef(regTcPtr->nextReplica);
|
||||
|
||||
if (likely(nextPos + TAiLen + LqhKeyReq::FixedSignalLength <= 25))
|
||||
{
|
||||
jam();
|
||||
sig0 = regTcPtr->firstAttrinfo[0];
|
||||
sig1 = regTcPtr->firstAttrinfo[1];
|
||||
sig2 = regTcPtr->firstAttrinfo[2];
|
||||
sig3 = regTcPtr->firstAttrinfo[3];
|
||||
sig4 = regTcPtr->firstAttrinfo[4];
|
||||
|
||||
lqhKeyReq->variableData[nextPos] = sig0;
|
||||
lqhKeyReq->variableData[nextPos + 1] = sig1;
|
||||
lqhKeyReq->variableData[nextPos + 2] = sig2;
|
||||
lqhKeyReq->variableData[nextPos + 3] = sig3;
|
||||
lqhKeyReq->variableData[nextPos + 4] = sig4;
|
||||
|
||||
nextPos += TAiLen;
|
||||
|
||||
lqhKeyReq->variableData[nextPos] = sig0;
|
||||
lqhKeyReq->variableData[nextPos + 1] = sig1;
|
||||
lqhKeyReq->variableData[nextPos + 2] = sig2;
|
||||
lqhKeyReq->variableData[nextPos + 3] = sig3;
|
||||
lqhKeyReq->variableData[nextPos + 4] = sig4;
|
||||
|
||||
nextPos += TAiLen;
|
||||
TAiLen = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
Treqinfo &= ~(Uint32)(RI_AI_IN_THIS_MASK << RI_AI_IN_THIS_SHIFT);
|
||||
lqhKeyReq->requestInfo = Treqinfo;
|
||||
}
|
||||
|
||||
sendSignal(lqhRef, GSN_LQHKEYREQ, signal,
|
||||
nextPos + LqhKeyReq::FixedSignalLength, JBB);
|
||||
if (regTcPtr->primKeyLen > 4) {
|
||||
@ -5165,6 +5176,17 @@ void Dblqh::packLqhkeyreqLab(Signal* signal)
|
||||
signal->theData[0] = sig0;
|
||||
signal->theData[1] = sig1;
|
||||
signal->theData[2] = sig2;
|
||||
|
||||
if (unlikely(nextPos + TAiLen + LqhKeyReq::FixedSignalLength > 25))
|
||||
{
|
||||
jam();
|
||||
/**
|
||||
* 4 replicas...
|
||||
*/
|
||||
memcpy(signal->theData+3, regTcPtr->firstAttrinfo, TAiLen << 2);
|
||||
sendSignal(lqhRef, GSN_ATTRINFO, signal, 3 + TAiLen, JBB);
|
||||
}
|
||||
|
||||
AttrbufPtr regAttrinbufptr;
|
||||
regAttrinbufptr.i = regTcPtr->firstAttrinbuf;
|
||||
while (regAttrinbufptr.i != RNIL) {
|
||||
|
@ -312,11 +312,12 @@ void AsyncFile::openReq(Request* request)
|
||||
Uint32 new_flags = 0;
|
||||
|
||||
// Convert file open flags from Solaris to Liux
|
||||
if(flags & FsOpenReq::OM_CREATE){
|
||||
if (flags & FsOpenReq::OM_CREATE)
|
||||
{
|
||||
new_flags |= O_CREAT;
|
||||
}
|
||||
|
||||
if(flags & FsOpenReq::OM_TRUNCATE){
|
||||
|
||||
if (flags & FsOpenReq::OM_TRUNCATE){
|
||||
#if 0
|
||||
if(Global_unlinkO_CREAT){
|
||||
unlink(theFileName.c_str());
|
||||
@ -330,25 +331,25 @@ void AsyncFile::openReq(Request* request)
|
||||
m_syncFrequency = 1024*1024; // Hard coded to 1M
|
||||
}
|
||||
|
||||
if(flags & FsOpenReq::OM_APPEND){
|
||||
if (flags & FsOpenReq::OM_APPEND){
|
||||
new_flags |= O_APPEND;
|
||||
}
|
||||
|
||||
if((flags & FsOpenReq::OM_SYNC) && ! (flags & FsOpenReq::OM_INIT))
|
||||
if ((flags & FsOpenReq::OM_SYNC) && ! (flags & FsOpenReq::OM_INIT))
|
||||
{
|
||||
#ifdef O_SYNC
|
||||
new_flags |= O_SYNC;
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifndef NDB_NO_O_DIRECT /* to allow tmpfs */
|
||||
//#ifndef NDB_NO_O_DIRECT /* to allow tmpfs */
|
||||
#ifdef O_DIRECT
|
||||
if (flags & FsOpenReq::OM_DIRECT)
|
||||
{
|
||||
new_flags |= O_DIRECT;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
//#endif
|
||||
|
||||
switch(flags & 0x3){
|
||||
case FsOpenReq::OM_READONLY:
|
||||
@ -370,44 +371,73 @@ void AsyncFile::openReq(Request* request)
|
||||
const int mode = S_IRUSR | S_IWUSR |
|
||||
S_IRGRP | S_IWGRP |
|
||||
S_IROTH | S_IWOTH;
|
||||
if(flags & FsOpenReq::OM_CREATE_IF_NONE){
|
||||
if((theFd = ::open(theFileName.c_str(), new_flags, mode)) != -1) {
|
||||
if (flags & FsOpenReq::OM_CREATE_IF_NONE)
|
||||
{
|
||||
Uint32 tmp_flags = new_flags;
|
||||
#ifdef O_DIRECT
|
||||
tmp_flags &= ~O_DIRECT;
|
||||
#endif
|
||||
if ((theFd = ::open(theFileName.c_str(), tmp_flags, mode)) != -1)
|
||||
{
|
||||
close(theFd);
|
||||
request->error = FsRef::fsErrFileExists;
|
||||
return;
|
||||
}
|
||||
new_flags |= O_CREAT;
|
||||
}
|
||||
|
||||
if (-1 == (theFd = ::open(theFileName.c_str(), new_flags, mode))) {
|
||||
|
||||
no_odirect:
|
||||
if (-1 == (theFd = ::open(theFileName.c_str(), new_flags, mode)))
|
||||
{
|
||||
PRINT_ERRORANDFLAGS(new_flags);
|
||||
if( (errno == ENOENT ) && (new_flags & O_CREAT ) ) {
|
||||
if ((errno == ENOENT) && (new_flags & O_CREAT))
|
||||
{
|
||||
createDirectories();
|
||||
if (-1 == (theFd = ::open(theFileName.c_str(), new_flags, mode))) {
|
||||
if (-1 == (theFd = ::open(theFileName.c_str(), new_flags, mode)))
|
||||
{
|
||||
#ifdef O_DIRECT
|
||||
if (new_flags & O_DIRECT)
|
||||
{
|
||||
new_flags &= ~O_DIRECT;
|
||||
goto no_odirect;
|
||||
}
|
||||
#endif
|
||||
PRINT_ERRORANDFLAGS(new_flags);
|
||||
request->error = errno;
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
}
|
||||
#ifdef O_DIRECT
|
||||
else if (new_flags & O_DIRECT)
|
||||
{
|
||||
new_flags &= ~O_DIRECT;
|
||||
goto no_odirect;
|
||||
}
|
||||
#endif
|
||||
else
|
||||
{
|
||||
request->error = errno;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if(flags & FsOpenReq::OM_CHECK_SIZE)
|
||||
if (flags & FsOpenReq::OM_CHECK_SIZE)
|
||||
{
|
||||
struct stat buf;
|
||||
if((fstat(theFd, &buf) == -1))
|
||||
if ((fstat(theFd, &buf) == -1))
|
||||
{
|
||||
request->error = errno;
|
||||
} else if(buf.st_size != request->par.open.file_size){
|
||||
}
|
||||
else if(buf.st_size != request->par.open.file_size)
|
||||
{
|
||||
request->error = FsRef::fsErrInvalidFileSize;
|
||||
}
|
||||
if(request->error)
|
||||
if (request->error)
|
||||
return;
|
||||
}
|
||||
|
||||
if(flags & FsOpenReq::OM_INIT){
|
||||
|
||||
if (flags & FsOpenReq::OM_INIT)
|
||||
{
|
||||
off_t off = 0;
|
||||
const off_t sz = request->par.open.file_size;
|
||||
Uint32 tmp[sizeof(SignalHeader)+25];
|
||||
|
@ -772,17 +772,17 @@ NdbDictionary::Index::getLogging() const {
|
||||
|
||||
NdbDictionary::Object::Status
|
||||
NdbDictionary::Index::getObjectStatus() const {
|
||||
return m_impl.m_status;
|
||||
return m_impl.m_table->m_status;
|
||||
}
|
||||
|
||||
int
|
||||
NdbDictionary::Index::getObjectVersion() const {
|
||||
return m_impl.m_version;
|
||||
return m_impl.m_table->m_version;
|
||||
}
|
||||
|
||||
int
|
||||
NdbDictionary::Index::getObjectId() const {
|
||||
return m_impl.m_id;
|
||||
return m_impl.m_table->m_id;
|
||||
}
|
||||
|
||||
|
||||
@ -1395,6 +1395,12 @@ NdbDictionary::Dictionary::invalidateTable(const char * name){
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
void
|
||||
NdbDictionary::Dictionary::invalidateTable(const Table *table){
|
||||
NdbTableImpl &t = NdbTableImpl::getImpl(*table);
|
||||
m_impl.invalidateObject(t);
|
||||
}
|
||||
|
||||
void
|
||||
NdbDictionary::Dictionary::removeCachedTable(const char * name){
|
||||
NdbTableImpl * t = m_impl.getTable(name);
|
||||
@ -1402,6 +1408,12 @@ NdbDictionary::Dictionary::removeCachedTable(const char * name){
|
||||
m_impl.removeCachedObject(* t);
|
||||
}
|
||||
|
||||
void
|
||||
NdbDictionary::Dictionary::removeCachedTable(const Table *table){
|
||||
NdbTableImpl &t = NdbTableImpl::getImpl(*table);
|
||||
m_impl.removeCachedObject(t);
|
||||
}
|
||||
|
||||
int
|
||||
NdbDictionary::Dictionary::createIndex(const Index & ind)
|
||||
{
|
||||
@ -1425,6 +1437,15 @@ NdbDictionary::Dictionary::getIndex(const char * indexName,
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
NdbDictionary::Dictionary::invalidateIndex(const Index *index){
|
||||
DBUG_ENTER("NdbDictionary::Dictionary::invalidateIndex");
|
||||
NdbIndexImpl &i = NdbIndexImpl::getImpl(*index);
|
||||
assert(i.m_table != 0);
|
||||
m_impl.invalidateObject(* i.m_table);
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
void
|
||||
NdbDictionary::Dictionary::invalidateIndex(const char * indexName,
|
||||
const char * tableName){
|
||||
@ -1443,6 +1464,15 @@ NdbDictionary::Dictionary::forceGCPWait()
|
||||
return m_impl.forceGCPWait();
|
||||
}
|
||||
|
||||
void
|
||||
NdbDictionary::Dictionary::removeCachedIndex(const Index *index){
|
||||
DBUG_ENTER("NdbDictionary::Dictionary::removeCachedIndex");
|
||||
NdbIndexImpl &i = NdbIndexImpl::getImpl(*index);
|
||||
assert(i.m_table != 0);
|
||||
m_impl.removeCachedObject(* i.m_table);
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
void
|
||||
NdbDictionary::Dictionary::removeCachedIndex(const char * indexName,
|
||||
const char * tableName){
|
||||
|
@ -43,6 +43,7 @@
|
||||
#include <my_sys.h>
|
||||
#include <NdbEnv.h>
|
||||
#include <NdbMem.h>
|
||||
#include <ndb_version.h>
|
||||
|
||||
#define DEBUG_PRINT 0
|
||||
#define INCOMPATIBLE_VERSION -2
|
||||
@ -1963,7 +1964,8 @@ indexTypeMapping[] = {
|
||||
int
|
||||
NdbDictInterface::parseTableInfo(NdbTableImpl ** ret,
|
||||
const Uint32 * data, Uint32 len,
|
||||
bool fullyQualifiedNames)
|
||||
bool fullyQualifiedNames,
|
||||
Uint32 version)
|
||||
{
|
||||
SimplePropertiesLinearReader it(data, len);
|
||||
DictTabInfo::Table *tableDesc;
|
||||
@ -2142,7 +2144,14 @@ NdbDictInterface::parseTableInfo(NdbTableImpl ** ret,
|
||||
* ret = impl;
|
||||
|
||||
NdbMem_Free((void*)tableDesc);
|
||||
DBUG_ASSERT(impl->m_fragmentCount > 0);
|
||||
if (version < MAKE_VERSION(5,1,3))
|
||||
{
|
||||
;
|
||||
}
|
||||
else
|
||||
{
|
||||
DBUG_ASSERT(impl->m_fragmentCount > 0);
|
||||
}
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
@ -3844,9 +3853,10 @@ NdbDictionaryImpl::dropBlobEvents(const NdbEventImpl& evnt)
|
||||
if (! c.getBlobType() || c.getPartSize() == 0)
|
||||
continue;
|
||||
n--;
|
||||
char bename[MAX_TAB_NAME_SIZE];
|
||||
NdbBlob::getBlobEventName(bename, &evnt, &c);
|
||||
(void)dropEvent(bename);
|
||||
NdbEventImpl* blob_evnt = getBlobEvent(evnt, i);
|
||||
if (blob_evnt == NULL)
|
||||
continue;
|
||||
(void)dropEvent(*blob_evnt);
|
||||
}
|
||||
} else {
|
||||
// loop over MAX_ATTRIBUTES_IN_TABLE ...
|
||||
|
@ -454,7 +454,8 @@ public:
|
||||
|
||||
static int parseTableInfo(NdbTableImpl ** dst,
|
||||
const Uint32 * data, Uint32 len,
|
||||
bool fullyQualifiedNames);
|
||||
bool fullyQualifiedNames,
|
||||
Uint32 version= 0xFFFFFFFF);
|
||||
|
||||
static int parseFileInfo(NdbFileImpl &dst,
|
||||
const Uint32 * data, Uint32 len);
|
||||
|
@ -1279,6 +1279,23 @@ find_bucket(Vector<Gci_container> * active, Uint64 gci)
|
||||
return find_bucket_chained(active,gci);
|
||||
}
|
||||
|
||||
static
|
||||
void
|
||||
crash_on_invalid_SUB_GCP_COMPLETE_REP(const Gci_container* bucket,
|
||||
const SubGcpCompleteRep * const rep,
|
||||
Uint32 nodes)
|
||||
{
|
||||
Uint32 old_cnt = bucket->m_gcp_complete_rep_count;
|
||||
|
||||
ndbout_c("INVALID SUB_GCP_COMPLETE_REP");
|
||||
ndbout_c("gci: %d", rep->gci);
|
||||
ndbout_c("sender: %x", rep->senderRef);
|
||||
ndbout_c("count: %d", rep->gcp_complete_rep_count);
|
||||
ndbout_c("bucket count: %u", old_cnt);
|
||||
ndbout_c("nodes: %u", nodes);
|
||||
abort();
|
||||
}
|
||||
|
||||
void
|
||||
NdbEventBuffer::execSUB_GCP_COMPLETE_REP(const SubGcpCompleteRep * const rep)
|
||||
{
|
||||
@ -1317,9 +1334,13 @@ NdbEventBuffer::execSUB_GCP_COMPLETE_REP(const SubGcpCompleteRep * const rep)
|
||||
old_cnt = m_system_nodes;
|
||||
}
|
||||
|
||||
assert(old_cnt >= cnt);
|
||||
//assert(old_cnt >= cnt);
|
||||
if (unlikely(! (old_cnt >= cnt)))
|
||||
{
|
||||
crash_on_invalid_SUB_GCP_COMPLETE_REP(bucket, rep, m_system_nodes);
|
||||
}
|
||||
bucket->m_gcp_complete_rep_count = old_cnt - cnt;
|
||||
|
||||
|
||||
if(old_cnt == cnt)
|
||||
{
|
||||
if(likely(gci == m_latestGCI + 1 || m_latestGCI == 0))
|
||||
|
@ -1192,9 +1192,9 @@ NdbTransaction::getNdbIndexScanOperation(const NdbIndexImpl* index,
|
||||
if(tOp)
|
||||
{
|
||||
tOp->m_currentTable = table;
|
||||
// Mark that this really an NdbIndexScanOperation
|
||||
tOp->m_type = NdbOperation::OrderedIndexScan;
|
||||
}
|
||||
// Mark that this really an NdbIndexScanOperation
|
||||
tOp->m_type = NdbOperation::OrderedIndexScan;
|
||||
return tOp;
|
||||
} else {
|
||||
setOperationErrorCodeAbort(4271);
|
||||
|
@ -1435,8 +1435,7 @@ NdbTransaction::sendTC_COMMIT_ACK(TransporterFacade *tp,
|
||||
Uint32 * dataPtr = aSignal->getDataPtrSend();
|
||||
dataPtr[0] = transId1;
|
||||
dataPtr[1] = transId2;
|
||||
|
||||
tp->sendSignal(aSignal, refToNode(aTCRef));
|
||||
tp->sendSignalUnCond(aSignal, refToNode(aTCRef));
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -343,7 +343,7 @@ execute(void * callbackObj, SignalHeader * const header,
|
||||
Uint32 aNodeId= refToNode(ref);
|
||||
tSignal.theReceiversBlockNumber= refToBlock(ref);
|
||||
tSignal.theVerId_signalNumber= GSN_SUB_GCP_COMPLETE_ACK;
|
||||
theFacade->sendSignal(&tSignal, aNodeId);
|
||||
theFacade->sendSignalUnCond(&tSignal, aNodeId);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -987,7 +987,7 @@ TransporterFacade::sendSignal(NdbApiSignal * aSignal, NodeId aNode){
|
||||
LinearSectionPtr ptr[3];
|
||||
signalLogger.sendSignal(* aSignal,
|
||||
1,
|
||||
aSignal->getDataPtr(),
|
||||
tDataPtr,
|
||||
aNode, ptr, 0);
|
||||
signalLogger.flushSignalLog();
|
||||
aSignal->theSendersBlockRef = tmp;
|
||||
@ -1014,6 +1014,7 @@ TransporterFacade::sendSignal(NdbApiSignal * aSignal, NodeId aNode){
|
||||
|
||||
int
|
||||
TransporterFacade::sendSignalUnCond(NdbApiSignal * aSignal, NodeId aNode){
|
||||
Uint32* tDataPtr = aSignal->getDataPtrSend();
|
||||
#ifdef API_TRACE
|
||||
if(setSignalLog() && TRACE_GSN(aSignal->theVerId_signalNumber)){
|
||||
Uint32 tmp = aSignal->theSendersBlockRef;
|
||||
@ -1021,7 +1022,7 @@ TransporterFacade::sendSignalUnCond(NdbApiSignal * aSignal, NodeId aNode){
|
||||
LinearSectionPtr ptr[3];
|
||||
signalLogger.sendSignal(* aSignal,
|
||||
0,
|
||||
aSignal->getDataPtr(),
|
||||
tDataPtr,
|
||||
aNode, ptr, 0);
|
||||
signalLogger.flushSignalLog();
|
||||
aSignal->theSendersBlockRef = tmp;
|
||||
@ -1032,7 +1033,7 @@ TransporterFacade::sendSignalUnCond(NdbApiSignal * aSignal, NodeId aNode){
|
||||
(aSignal->theReceiversBlockNumber != 0));
|
||||
SendStatus ss = theTransporterRegistry->prepareSend(aSignal,
|
||||
0,
|
||||
aSignal->getDataPtr(),
|
||||
tDataPtr,
|
||||
aNode,
|
||||
0);
|
||||
|
||||
|
@ -175,7 +175,8 @@ private:
|
||||
friend class GrepSS;
|
||||
friend class Ndb;
|
||||
friend class Ndb_cluster_connection_impl;
|
||||
|
||||
friend class NdbTransaction;
|
||||
|
||||
int sendSignalUnCond(NdbApiSignal *, NodeId nodeId);
|
||||
|
||||
bool isConnected(NodeId aNodeId);
|
||||
|
@ -25,6 +25,7 @@
|
||||
#include <SimpleProperties.hpp>
|
||||
#include <signaldata/DictTabInfo.hpp>
|
||||
#include <ndb_limits.h>
|
||||
#include <NdbAutoPtr.hpp>
|
||||
|
||||
#include "../../../../sql/ha_ndbcluster_tables.h"
|
||||
|
||||
@ -291,6 +292,7 @@ RestoreMetaData::markSysTables()
|
||||
strcmp(tableName, "NDB$EVENTS_0") == 0 ||
|
||||
strcmp(tableName, "sys/def/SYSTAB_0") == 0 ||
|
||||
strcmp(tableName, "sys/def/NDB$EVENTS_0") == 0 ||
|
||||
strcmp(tableName, "cluster_replication/def/" NDB_APPLY_TABLE) == 0 ||
|
||||
strcmp(tableName, NDB_REP_DB "/def/" NDB_APPLY_TABLE) == 0 ||
|
||||
strcmp(tableName, NDB_REP_DB "/def/" NDB_SCHEMA_TABLE)== 0 )
|
||||
table->isSysTable = true;
|
||||
@ -377,7 +379,8 @@ bool
|
||||
RestoreMetaData::parseTableDescriptor(const Uint32 * data, Uint32 len)
|
||||
{
|
||||
NdbTableImpl* tableImpl = 0;
|
||||
int ret = NdbDictInterface::parseTableInfo(&tableImpl, data, len, false);
|
||||
int ret = NdbDictInterface::parseTableInfo(&tableImpl, data, len, false,
|
||||
m_fileHeader.NdbVersion);
|
||||
|
||||
if (ret != 0) {
|
||||
err << "parseTableInfo " << " failed" << endl;
|
||||
@ -956,13 +959,16 @@ RestoreLogIterator::RestoreLogIterator(const RestoreMetaData & md)
|
||||
}
|
||||
|
||||
const LogEntry *
|
||||
RestoreLogIterator::getNextLogEntry(int & res, bool *alloc_flag) {
|
||||
RestoreLogIterator::getNextLogEntry(int & res) {
|
||||
// Read record length
|
||||
typedef BackupFormat::LogFile::LogEntry LogE;
|
||||
|
||||
typedef BackupFormat::LogFile::LogEntry_no_fragid LogE_no_fragid;
|
||||
const Uint32 offset= 3;
|
||||
assert(offset == (offsetof(LogE, Data) >> 2) - 1);
|
||||
LogE * logE= 0;
|
||||
Uint32 len= ~0;
|
||||
const Uint32 stopGCP = m_metaData.getStopGCP();
|
||||
NdbAutoPtr<char> ap1;
|
||||
do {
|
||||
if (buffer_read_ahead(&len, sizeof(Uint32), 1) != 1){
|
||||
res= -1;
|
||||
@ -988,21 +994,33 @@ RestoreLogIterator::getNextLogEntry(int & res, bool *alloc_flag) {
|
||||
We set FragId to 0 in older versions (these versions
|
||||
do not support restore of user defined partitioned
|
||||
tables.
|
||||
|
||||
These log entries miss one Uint32 FragId, hence missing_len=1
|
||||
|
||||
Reconstruct a new log entry with old.
|
||||
*/
|
||||
const Uint32 missing_len= 1;
|
||||
assert((offsetof(LogE, Data) - offsetof(LogE_no_fragid, Data)) >> 2 ==
|
||||
missing_len);
|
||||
LogE_no_fragid * logE_no_fragid= (LogE_no_fragid *)logE;
|
||||
|
||||
int i;
|
||||
LogE *tmpLogE = (LogE*)NdbMem_Allocate(data_len + 4);
|
||||
LogE *tmpLogE= (LogE*)NdbMem_Allocate(data_len + missing_len*4);
|
||||
if (!tmpLogE)
|
||||
{
|
||||
res = -2;
|
||||
return 0;
|
||||
}
|
||||
tmpLogE->Length = logE->Length;
|
||||
tmpLogE->TableId = logE->TableId;
|
||||
tmpLogE->TriggerEvent = logE->TriggerEvent;
|
||||
tmpLogE->FragId = 0;
|
||||
for (i = 0; i < len - 3; i++)
|
||||
tmpLogE->Data[i] = logE->Data[i-1];
|
||||
*alloc_flag= true;
|
||||
ap1.reset((char*)tmpLogE);
|
||||
bzero(tmpLogE, data_len + missing_len*4);
|
||||
/* correct len to reflect new logEntry version length */
|
||||
len+= missing_len;
|
||||
tmpLogE->Length = logE_no_fragid->Length;
|
||||
tmpLogE->TableId = logE_no_fragid->TableId;
|
||||
tmpLogE->TriggerEvent = logE_no_fragid->TriggerEvent;
|
||||
for (i = 0; i < len - offset; i++)
|
||||
tmpLogE->Data[i] = logE_no_fragid->Data[i];
|
||||
logE= tmpLogE;
|
||||
}
|
||||
logE->TableId= ntohl(logE->TableId);
|
||||
logE->TriggerEvent= ntohl(logE->TriggerEvent);
|
||||
@ -1012,7 +1030,7 @@ RestoreLogIterator::getNextLogEntry(int & res, bool *alloc_flag) {
|
||||
|
||||
if(hasGcp){
|
||||
len--;
|
||||
m_last_gci = ntohl(logE->Data[len-2]);
|
||||
m_last_gci = ntohl(logE->Data[len-offset]);
|
||||
}
|
||||
} while(m_last_gci > stopGCP + 1);
|
||||
|
||||
@ -1036,7 +1054,7 @@ RestoreLogIterator::getNextLogEntry(int & res, bool *alloc_flag) {
|
||||
m_logEntry.clear();
|
||||
|
||||
AttributeHeader * ah = (AttributeHeader *)&logE->Data[0];
|
||||
AttributeHeader *end = (AttributeHeader *)&logE->Data[len - 2];
|
||||
AttributeHeader *end = (AttributeHeader *)&logE->Data[len - offset];
|
||||
AttributeS * attr;
|
||||
m_logEntry.m_frag_id = ntohl(logE->FragId);
|
||||
while(ah < end){
|
||||
|
@ -386,7 +386,7 @@ public:
|
||||
RestoreLogIterator(const RestoreMetaData &);
|
||||
virtual ~RestoreLogIterator() {};
|
||||
|
||||
const LogEntry * getNextLogEntry(int & res, bool *alloc_flag);
|
||||
const LogEntry * getNextLogEntry(int & res);
|
||||
};
|
||||
|
||||
NdbOut& operator<<(NdbOut& ndbout, const TableS&);
|
||||
|
@ -615,14 +615,11 @@ main(int argc, char** argv)
|
||||
}
|
||||
|
||||
const LogEntry * logEntry = 0;
|
||||
bool alloc_flag = false;
|
||||
while ((logEntry = logIter.getNextLogEntry(res= 0, &alloc_flag)) != 0)
|
||||
while ((logEntry = logIter.getNextLogEntry(res= 0)) != 0)
|
||||
{
|
||||
if (checkSysTable(logEntry->m_table))
|
||||
for(Uint32 i= 0; i < g_consumers.size(); i++)
|
||||
g_consumers[i]->logEntry(* logEntry);
|
||||
if (alloc_flag)
|
||||
NdbMem_Free((void*)logEntry);
|
||||
}
|
||||
if (res < 0)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user