summaryrefslogtreecommitdiff
path: root/ndb
diff options
context:
space:
mode:
authorjonas@perch.ndb.mysql.com <>2006-08-04 08:41:32 +0200
committerjonas@perch.ndb.mysql.com <>2006-08-04 08:41:32 +0200
commit9bf1aec1c46f887a3c1a61292be860ddf3e52175 (patch)
tree29b7535f2089467f3060ab51b8c37fc3cf5c127b /ndb
parentcfd29d00d2e96274a0af988ff5623134c0564930 (diff)
downloadmariadb-git-9bf1aec1c46f887a3c1a61292be860ddf3e52175.tar.gz
ndb - bug#20296 (recommit in 4.1)
Make sure that tupkeyErrorLab is run if interpretedUpdate(fail), so that entry is not inserted into index. Yeilding crash on following dml on tupel
Diffstat (limited to 'ndb')
-rw-r--r--ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp b/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp
index 8171fa65771..a1f8b827752 100644
--- a/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp
+++ b/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp
@@ -1111,14 +1111,16 @@ Dbtup::updateStartLab(Signal* signal,
regOperPtr->pageOffset,
&cinBuffer[0],
regOperPtr->attrinbufLen);
- if (retValue == -1) {
- tupkeyErrorLab(signal);
- return -1;
- }//if
} else {
jam();
retValue = interpreterStartLab(signal, pagePtr, regOperPtr->pageOffset);
}//if
+
+ if (retValue == -1) {
+ tupkeyErrorLab(signal);
+ return -1;
+ }//if
+
ndbrequire(regOperPtr->tupVersion != ZNIL);
pagePtr->pageWord[regOperPtr->pageOffset + 1] = regOperPtr->tupVersion;
if (regTabPtr->checksumIndicator) {