summaryrefslogtreecommitdiff
path: root/storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp
diff options
context:
space:
mode:
authorunknown <jonas@perch.ndb.mysql.com>2007-05-07 13:48:27 +0200
committerunknown <jonas@perch.ndb.mysql.com>2007-05-07 13:48:27 +0200
commita33d5e1755c9b6dc6839632240adf3454fa959f8 (patch)
treece68002538323f0f65c37c69a0f1aef78db6fc04 /storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp
parent764e010e8cfd408c1e23fa5f1973b51c01c36a7d (diff)
downloadmariadb-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.cpp21
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;