diff --git a/mysql-test/r/ndb_insert.result b/mysql-test/r/ndb_insert.result index 93f46c85499..87f27518ea3 100644 --- a/mysql-test/r/ndb_insert.result +++ b/mysql-test/r/ndb_insert.result @@ -416,4 +416,16 @@ INSERT INTO t1 VALUES SELECT COUNT(*) FROM t1; COUNT(*) 2000 +INSERT INTO t1 VALUES +(1,1,1),(2,2,2),(3,3,3),(4,4,4),(5,5,5), +(6,6,6),(7,7,7),(8,8,8),(9,9,9),(10,10,10); +ERROR 23000: Duplicate entry '10' for key 1 +begin; +INSERT INTO t1 VALUES +(1,1,1),(2,2,2),(3,3,3),(4,4,4),(5,5,5), +(6,6,6),(7,7,7),(8,8,8),(9,9,9),(10,10,10); +ERROR 23000: Duplicate entry '10' for key 1 +commit; +insert into t1 select * from t1 where b < 10 order by pk1; +ERROR 23000: Duplicate entry '9' for key 1 DROP TABLE t1; diff --git a/mysql-test/t/ndb_insert.test b/mysql-test/t/ndb_insert.test index c55a925dca2..a448e413f1d 100644 --- a/mysql-test/t/ndb_insert.test +++ b/mysql-test/t/ndb_insert.test @@ -429,5 +429,34 @@ INSERT INTO t1 VALUES SELECT COUNT(*) FROM t1; +# +# Insert duplicate rows +# +--error 1062 +INSERT INTO t1 VALUES +(1,1,1),(2,2,2),(3,3,3),(4,4,4),(5,5,5), +(6,6,6),(7,7,7),(8,8,8),(9,9,9),(10,10,10); + + + +begin; + +# +# Insert duplicate rows, inside transaction +# +--error 1062 +INSERT INTO t1 VALUES +(1,1,1),(2,2,2),(3,3,3),(4,4,4),(5,5,5), +(6,6,6),(7,7,7),(8,8,8),(9,9,9),(10,10,10); + +commit; + +# +# Insert duplicate rows using "insert .. select" + +# +--error 1062 +insert into t1 select * from t1 where b < 10 order by pk1; + DROP TABLE t1; diff --git a/sql/ha_ndbcluster.cc b/sql/ha_ndbcluster.cc index 3cbede189b1..10ac9fbf84f 100644 --- a/sql/ha_ndbcluster.cc +++ b/sql/ha_ndbcluster.cc @@ -2401,7 +2401,7 @@ int ha_ndbcluster::end_bulk_insert() rows_inserted, bulk_insert_rows)); bulk_insert_not_flushed= false; if (trans->execute(NoCommit) != 0) - error= ndb_err(trans); + my_errno= error= ndb_err(trans); } rows_inserted= 0;