mirror of
https://github.com/MariaDB/server.git
synced 2025-01-31 11:01:52 +01:00
ndb - bug#20612 ins-del fix in tup
This commit is contained in:
parent
2534153973
commit
8e88d8d54f
3 changed files with 55 additions and 1 deletions
|
@ -422,6 +422,26 @@ SELECT COUNT(*) FROM t1;
|
|||
COUNT(*)
|
||||
0
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (
|
||||
a int NOT NULL,
|
||||
b varchar(4000), -- must use 2 pages undo
|
||||
PRIMARY KEY using hash (a)
|
||||
)
|
||||
TABLESPACE ts1 STORAGE DISK ENGINE=NDBCLUSTER;
|
||||
set autocommit = 0;
|
||||
insert into t1 values(0,'x');
|
||||
insert into t1 values(1,'x');
|
||||
insert into t1 values(2,'x');
|
||||
insert into t1 values(3,'x');
|
||||
insert into t1 values(4,'x');
|
||||
insert into t1 values(5,'x');
|
||||
insert into t1 values(6,'x');
|
||||
insert into t1 values(7,'x');
|
||||
insert into t1 values(8,'x');
|
||||
delete from t1 where a = 0;
|
||||
commit;
|
||||
set autocommit = 1;
|
||||
drop table t1;
|
||||
ALTER TABLESPACE ts1
|
||||
DROP DATAFILE 'datafile.dat'
|
||||
ENGINE = NDB;
|
||||
|
|
|
@ -345,6 +345,32 @@ DELETE FROM t1 WHERE a=2;
|
|||
SELECT COUNT(*) FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
# bug#20612 INS-DEL bug (not pgman bug)
|
||||
# found via disk data assert but is not pgman or disk data related
|
||||
|
||||
CREATE TABLE t1 (
|
||||
a int NOT NULL,
|
||||
b varchar(4000), -- must use 2 pages undo
|
||||
PRIMARY KEY using hash (a)
|
||||
)
|
||||
TABLESPACE ts1 STORAGE DISK ENGINE=NDBCLUSTER;
|
||||
|
||||
set autocommit = 0;
|
||||
insert into t1 values(0,'x');
|
||||
insert into t1 values(1,'x');
|
||||
insert into t1 values(2,'x');
|
||||
insert into t1 values(3,'x');
|
||||
insert into t1 values(4,'x');
|
||||
insert into t1 values(5,'x');
|
||||
insert into t1 values(6,'x');
|
||||
insert into t1 values(7,'x');
|
||||
insert into t1 values(8,'x');
|
||||
delete from t1 where a = 0;
|
||||
commit;
|
||||
set autocommit = 1;
|
||||
|
||||
drop table t1;
|
||||
|
||||
###################
|
||||
# Test Cleanup
|
||||
###################
|
||||
|
|
|
@ -1469,7 +1469,15 @@ int Dbtup::handleDeleteReq(Signal* signal,
|
|||
{
|
||||
Operationrec* prevOp= req_struct->prevOpPtr.p;
|
||||
regOperPtr->tupVersion= prevOp->tupVersion;
|
||||
regOperPtr->m_copy_tuple_location= prevOp->m_copy_tuple_location;
|
||||
// make copy since previous op is committed before this one
|
||||
const Uint32* org = c_undo_buffer.get_ptr(&prevOp->m_copy_tuple_location);
|
||||
Uint32* dst = c_undo_buffer.alloc_copy_tuple(
|
||||
®OperPtr->m_copy_tuple_location, regTabPtr->total_rec_size);
|
||||
if (dst == 0) {
|
||||
terrorCode = ZMEM_NOMEM_ERROR;
|
||||
goto error;
|
||||
}
|
||||
memcpy(dst, org, regTabPtr->total_rec_size << 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue