diff options
author | unknown <jonas@perch.ndb.mysql.com> | 2007-05-07 13:48:27 +0200 |
---|---|---|
committer | unknown <jonas@perch.ndb.mysql.com> | 2007-05-07 13:48:27 +0200 |
commit | a33d5e1755c9b6dc6839632240adf3454fa959f8 (patch) | |
tree | ce68002538323f0f65c37c69a0f1aef78db6fc04 /storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp | |
parent | 764e010e8cfd408c1e23fa5f1973b51c01c36a7d (diff) | |
download | mariadb-git-a33d5e1755c9b6dc6839632240adf3454fa959f8.tar.gz |
ndb - bug#28276
Fix DeleteRead in multi-operation
Dont use setup_read, as it will (correctly) find that tuple is deleted
storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp:
Fix multi-op DeleteRead
storage/ndb/test/ndbapi/testBasic.cpp:
Fix multi-op DeleteRead
Diffstat (limited to 'storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp')
-rw-r--r-- | storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp b/storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp index 69b2d6d116e..c657feb6f95 100644 --- a/storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp +++ b/storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp @@ -1491,6 +1491,7 @@ int Dbtup::handleDeleteReq(Signal* signal, goto error; } memcpy(dst, org, regTabPtr->total_rec_size << 2); + req_struct->m_tuple_ptr = (Tuple_header*)dst; } else { @@ -1528,18 +1529,18 @@ int Dbtup::handleDeleteReq(Signal* signal, return 0; } - if (setup_read(req_struct, regOperPtr, regFragPtr, regTabPtr, disk)) + if (regTabPtr->need_expand(disk)) + prepare_read(req_struct, regTabPtr, disk); + + Uint32 RlogSize; + int ret= handleReadReq(signal, regOperPtr, regTabPtr, req_struct); + if (ret == 0 && (RlogSize= req_struct->log_size)) { - Uint32 RlogSize; - int ret= handleReadReq(signal, regOperPtr, regTabPtr, req_struct); - if (ret == 0 && (RlogSize= req_struct->log_size)) - { - jam(); - sendLogAttrinfo(signal, RlogSize, regOperPtr); - } - return ret; + jam(); + sendLogAttrinfo(signal, RlogSize, regOperPtr); } - + return ret; + error: tupkeyErrorLab(signal); return -1; |