mirror of
https://github.com/MariaDB/server.git
synced 2025-08-07 00:04:31 +03:00
Merge
This commit is contained in:
@@ -416,10 +416,12 @@ INSERT INTO t1 VALUES
|
|||||||
SELECT COUNT(*) FROM t1;
|
SELECT COUNT(*) FROM t1;
|
||||||
COUNT(*)
|
COUNT(*)
|
||||||
2000
|
2000
|
||||||
|
INSERT INTO t1 VALUES (1,1,1);
|
||||||
|
ERROR 23000: Duplicate entry '1' for key 1
|
||||||
INSERT INTO t1 VALUES
|
INSERT INTO t1 VALUES
|
||||||
(1,1,1),(2,2,2),(3,3,3),(4,4,4),(5,5,5),
|
(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);
|
(6,6,6),(7,7,7),(8,8,8),(9,9,9),(10,10,10);
|
||||||
ERROR 23000: Duplicate entry '10' for key 1
|
ERROR 23000: Can't write; duplicate key in table 't1'
|
||||||
select count(*) from t1;
|
select count(*) from t1;
|
||||||
count(*)
|
count(*)
|
||||||
2000
|
2000
|
||||||
@@ -437,7 +439,7 @@ begin;
|
|||||||
INSERT INTO t1 VALUES
|
INSERT INTO t1 VALUES
|
||||||
(1,1,1),(2,2,2),(3,3,3),(4,4,4),(5,5,5),
|
(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);
|
(6,6,6),(7,7,7),(8,8,8),(9,9,9),(10,10,10);
|
||||||
ERROR 23000: Duplicate entry '10' for key 1
|
ERROR 23000: Can't write; duplicate key in table 't1'
|
||||||
commit;
|
commit;
|
||||||
ERROR HY000: Got error 4350 'Transaction already aborted' from ndbcluster
|
ERROR HY000: Got error 4350 'Transaction already aborted' from ndbcluster
|
||||||
select * from t1 where pk1=1;
|
select * from t1 where pk1=1;
|
||||||
@@ -456,7 +458,7 @@ begin;
|
|||||||
INSERT INTO t1 VALUES
|
INSERT INTO t1 VALUES
|
||||||
(1,1,1),(2,2,2),(3,3,3),(4,4,4),(5,5,5),
|
(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);
|
(6,6,6),(7,7,7),(8,8,8),(9,9,9),(10,10,10);
|
||||||
ERROR 23000: Duplicate entry '10' for key 1
|
ERROR 23000: Can't write; duplicate key in table 't1'
|
||||||
rollback;
|
rollback;
|
||||||
select * from t1 where pk1=1;
|
select * from t1 where pk1=1;
|
||||||
pk1 b c
|
pk1 b c
|
||||||
@@ -474,7 +476,7 @@ begin;
|
|||||||
INSERT INTO t1 VALUES
|
INSERT INTO t1 VALUES
|
||||||
(1,1,1),(2,2,2),(3,3,3),(4,4,4),(5,5,5),
|
(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);
|
(6,6,6),(7,7,7),(8,8,8),(9,9,9),(10,10,10);
|
||||||
ERROR 23000: Duplicate entry '10' for key 1
|
ERROR 23000: Can't write; duplicate key in table 't1'
|
||||||
SELECT * FROM t1 WHERE pk1=10;
|
SELECT * FROM t1 WHERE pk1=10;
|
||||||
ERROR HY000: Got error 4350 'Transaction already aborted' from ndbcluster
|
ERROR HY000: Got error 4350 'Transaction already aborted' from ndbcluster
|
||||||
rollback;
|
rollback;
|
||||||
@@ -494,7 +496,7 @@ begin;
|
|||||||
INSERT INTO t1 VALUES
|
INSERT INTO t1 VALUES
|
||||||
(1,1,1),(2,2,2),(3,3,3),(4,4,4),(5,5,5),
|
(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);
|
(6,6,6),(7,7,7),(8,8,8),(9,9,9),(10,10,10);
|
||||||
ERROR 23000: Duplicate entry '10' for key 1
|
ERROR 23000: Can't write; duplicate key in table 't1'
|
||||||
SELECT * FROM t1 WHERE pk1=10;
|
SELECT * FROM t1 WHERE pk1=10;
|
||||||
ERROR HY000: Got error 4350 'Transaction already aborted' from ndbcluster
|
ERROR HY000: Got error 4350 'Transaction already aborted' from ndbcluster
|
||||||
SELECT * FROM t1 WHERE pk1=10;
|
SELECT * FROM t1 WHERE pk1=10;
|
||||||
@@ -517,7 +519,7 @@ begin;
|
|||||||
INSERT INTO t1 VALUES
|
INSERT INTO t1 VALUES
|
||||||
(1,1,1),(2,2,2),(3,3,3),(4,4,4),(5,5,5),
|
(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);
|
(6,6,6),(7,7,7),(8,8,8),(9,9,9),(10,10,10);
|
||||||
ERROR 23000: Duplicate entry '10' for key 1
|
ERROR 23000: Can't write; duplicate key in table 't1'
|
||||||
INSERT INTO t1 values (4000, 40, 44);
|
INSERT INTO t1 values (4000, 40, 44);
|
||||||
ERROR HY000: Got error 4350 'Transaction already aborted' from ndbcluster
|
ERROR HY000: Got error 4350 'Transaction already aborted' from ndbcluster
|
||||||
rollback;
|
rollback;
|
||||||
@@ -534,7 +536,7 @@ select count(*) from t1;
|
|||||||
count(*)
|
count(*)
|
||||||
2000
|
2000
|
||||||
insert into t1 select * from t1 where b < 10 order by pk1;
|
insert into t1 select * from t1 where b < 10 order by pk1;
|
||||||
ERROR 23000: Duplicate entry '9' for key 1
|
ERROR 23000: Can't write; duplicate key in table 't1'
|
||||||
DELETE FROM t1 WHERE pk1=2;
|
DELETE FROM t1 WHERE pk1=2;
|
||||||
begin;
|
begin;
|
||||||
INSERT IGNORE INTO t1 VALUES(1,2,3),(2,3,4);
|
INSERT IGNORE INTO t1 VALUES(1,2,3),(2,3,4);
|
||||||
|
@@ -434,6 +434,9 @@ SELECT COUNT(*) FROM t1;
|
|||||||
# Insert duplicate rows
|
# Insert duplicate rows
|
||||||
#
|
#
|
||||||
--error 1062
|
--error 1062
|
||||||
|
INSERT INTO t1 VALUES (1,1,1);
|
||||||
|
|
||||||
|
--error 1022
|
||||||
INSERT INTO t1 VALUES
|
INSERT INTO t1 VALUES
|
||||||
(1,1,1),(2,2,2),(3,3,3),(4,4,4),(5,5,5),
|
(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);
|
(6,6,6),(7,7,7),(8,8,8),(9,9,9),(10,10,10);
|
||||||
@@ -457,7 +460,7 @@ rollback;
|
|||||||
#
|
#
|
||||||
begin;
|
begin;
|
||||||
|
|
||||||
--error 1062
|
--error 1022
|
||||||
INSERT INTO t1 VALUES
|
INSERT INTO t1 VALUES
|
||||||
(1,1,1),(2,2,2),(3,3,3),(4,4,4),(5,5,5),
|
(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);
|
(6,6,6),(7,7,7),(8,8,8),(9,9,9),(10,10,10);
|
||||||
@@ -477,7 +480,7 @@ select count(*) from t1;
|
|||||||
#
|
#
|
||||||
begin;
|
begin;
|
||||||
|
|
||||||
--error 1062
|
--error 1022
|
||||||
INSERT INTO t1 VALUES
|
INSERT INTO t1 VALUES
|
||||||
(1,1,1),(2,2,2),(3,3,3),(4,4,4),(5,5,5),
|
(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);
|
(6,6,6),(7,7,7),(8,8,8),(9,9,9),(10,10,10);
|
||||||
@@ -496,7 +499,7 @@ select count(*) from t1;
|
|||||||
#
|
#
|
||||||
begin;
|
begin;
|
||||||
|
|
||||||
--error 1062
|
--error 1022
|
||||||
INSERT INTO t1 VALUES
|
INSERT INTO t1 VALUES
|
||||||
(1,1,1),(2,2,2),(3,3,3),(4,4,4),(5,5,5),
|
(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);
|
(6,6,6),(7,7,7),(8,8,8),(9,9,9),(10,10,10);
|
||||||
@@ -517,7 +520,7 @@ select count(*) from t1;
|
|||||||
#
|
#
|
||||||
begin;
|
begin;
|
||||||
|
|
||||||
--error 1062
|
--error 1022
|
||||||
INSERT INTO t1 VALUES
|
INSERT INTO t1 VALUES
|
||||||
(1,1,1),(2,2,2),(3,3,3),(4,4,4),(5,5,5),
|
(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);
|
(6,6,6),(7,7,7),(8,8,8),(9,9,9),(10,10,10);
|
||||||
@@ -543,7 +546,7 @@ select count(*) from t1;
|
|||||||
#
|
#
|
||||||
begin;
|
begin;
|
||||||
|
|
||||||
--error 1062
|
--error 1022
|
||||||
INSERT INTO t1 VALUES
|
INSERT INTO t1 VALUES
|
||||||
(1,1,1),(2,2,2),(3,3,3),(4,4,4),(5,5,5),
|
(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);
|
(6,6,6),(7,7,7),(8,8,8),(9,9,9),(10,10,10);
|
||||||
@@ -562,7 +565,7 @@ select count(*) from t1;
|
|||||||
# Insert duplicate rows using "insert .. select"
|
# Insert duplicate rows using "insert .. select"
|
||||||
|
|
||||||
#
|
#
|
||||||
--error 1062
|
--error 1022
|
||||||
insert into t1 select * from t1 where b < 10 order by pk1;
|
insert into t1 select * from t1 where b < 10 order by pk1;
|
||||||
|
|
||||||
DELETE FROM t1 WHERE pk1=2;
|
DELETE FROM t1 WHERE pk1=2;
|
||||||
|
@@ -511,8 +511,13 @@ int ha_ndbcluster::ndb_err(NdbTransaction *trans)
|
|||||||
DBUG_PRINT("info", ("transformed ndbcluster error %d to mysql error %d",
|
DBUG_PRINT("info", ("transformed ndbcluster error %d to mysql error %d",
|
||||||
err.code, res));
|
err.code, res));
|
||||||
if (res == HA_ERR_FOUND_DUPP_KEY)
|
if (res == HA_ERR_FOUND_DUPP_KEY)
|
||||||
|
{
|
||||||
|
if (m_rows_to_insert == 1)
|
||||||
m_dupkey= table->s->primary_key;
|
m_dupkey= table->s->primary_key;
|
||||||
|
else
|
||||||
|
// We are batching inserts, offending key is not available
|
||||||
|
m_dupkey= (uint) -1;
|
||||||
|
}
|
||||||
DBUG_RETURN(res);
|
DBUG_RETURN(res);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3119,6 +3124,13 @@ double ha_ndbcluster::scan_time()
|
|||||||
DBUG_RETURN(res);
|
DBUG_RETURN(res);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Convert MySQL table locks into locks supported by Ndb Cluster.
|
||||||
|
Note that MySQL Cluster does currently not support distributed
|
||||||
|
table locks, so to be safe one should set cluster in Single
|
||||||
|
User Mode, before relying on table locks when updating tables
|
||||||
|
from several MySQL servers
|
||||||
|
*/
|
||||||
|
|
||||||
THR_LOCK_DATA **ha_ndbcluster::store_lock(THD *thd,
|
THR_LOCK_DATA **ha_ndbcluster::store_lock(THD *thd,
|
||||||
THR_LOCK_DATA **to,
|
THR_LOCK_DATA **to,
|
||||||
@@ -3134,7 +3146,7 @@ THR_LOCK_DATA **ha_ndbcluster::store_lock(THD *thd,
|
|||||||
/* Since NDB does not currently have table locks
|
/* Since NDB does not currently have table locks
|
||||||
this is treated as a ordinary lock */
|
this is treated as a ordinary lock */
|
||||||
|
|
||||||
if ((lock_type >= TL_WRITE_ALLOW_WRITE &&
|
if ((lock_type >= TL_WRITE_CONCURRENT_INSERT &&
|
||||||
lock_type <= TL_WRITE) && !thd->in_lock_tables)
|
lock_type <= TL_WRITE) && !thd->in_lock_tables)
|
||||||
lock_type= TL_WRITE_ALLOW_WRITE;
|
lock_type= TL_WRITE_ALLOW_WRITE;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user