-- source include/have_ndb.inc
-- source include/have_multi_ndb.inc
-- source include/not_embedded.inc

--disable_warnings
DROP TABLE IF EXISTS t1;
--enable_warnings

connect (con1,localhost,root,,test);
connect (con2,localhost,root,,test);
connect (con3,localhost,root,,test);
connect (con4,localhost,root,,test);
connect (con5,localhost,root,,test);
connect (con6,localhost,root,,test);

CREATE TABLE t1 (
  a INT NOT NULL PRIMARY KEY,
  b INT NOT NULL
) ENGINE=ndbcluster;

connection con1;
BEGIN;
INSERT INTO t1 VALUES (9410,9412);
connection con2;
BEGIN;
--send
INSERT INTO t1 VALUES (9411,9412);
connection con3;
BEGIN;
--send
INSERT INTO t1 VALUES (9412,9412);
connection con4;
BEGIN;
--send
INSERT INTO t1 VALUES (9413,9412);
connection con5;
BEGIN;
--send
INSERT INTO t1 VALUES (9414,9412);
connection con6;
BEGIN;
--send
INSERT INTO t1 VALUES (9415,9412);
connection con1;
sleep 1;

ROLLBACK;
connection con2;
reap;
ROLLBACK;
connection con3;
reap;
ROLLBACK;
connection con4;
reap;
ROLLBACK;
connection con5;
reap;
ROLLBACK;
connection con6;
reap;
ROLLBACK;

connection server2;

drop table t1;
CREATE TABLE t1 (
  a INT NOT NULL PRIMARY KEY,
  b INT NOT NULL,
  c INT NOT NULL
) ENGINE=ndbcluster;

connection server1;

--error 1296
select * from t1;
select * from t1;
select * from t1;
select * from t1;
select * from t1;
select * from t1;

drop table t1;

#For BUG#29851 TRUNCATE causes error 4350 from cluster in INSERT... ON DUPLICATE KEY UPDATE

connection con1;

--disable_warnings
DROP TABLE IF EXISTS truncate_test;
--enable_warnings

CREATE TABLE truncate_test (
  i INT PRIMARY KEY,
  a INT,
  b VARCHAR(11),
  UNIQUE KEY (a) 
) ENGINE = NDB;

INSERT INTO truncate_test VALUES (1, 1, 'test') ON DUPLICATE KEY UPDATE b = 'new';
INSERT INTO truncate_test VALUES (1, 1, 'test') ON DUPLICATE KEY UPDATE b = 'new';

connection con2;
TRUNCATE truncate_test;

connection con1;
INSERT INTO truncate_test VALUES (1, 1, 'test') ON DUPLICATE KEY UPDATE b = 'new';
SELECT * FROM truncate_test;

connection con2;
INSERT INTO truncate_test VALUES (1, 1, 'test') ON DUPLICATE KEY UPDATE b = 'new';
SELECT * FROM truncate_test;

DROP TABLE truncate_test;
