diff options
author | jonas@perch.ndb.mysql.com <> | 2006-08-04 08:41:32 +0200 |
---|---|---|
committer | jonas@perch.ndb.mysql.com <> | 2006-08-04 08:41:32 +0200 |
commit | 9bf1aec1c46f887a3c1a61292be860ddf3e52175 (patch) | |
tree | 29b7535f2089467f3060ab51b8c37fc3cf5c127b /ndb | |
parent | cfd29d00d2e96274a0af988ff5623134c0564930 (diff) | |
download | mariadb-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.cpp | 10 |
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) { |