diff options
author | unknown <joreland@mysql.com> | 2004-09-21 14:58:23 +0200 |
---|---|---|
committer | unknown <joreland@mysql.com> | 2004-09-21 14:58:23 +0200 |
commit | b61bfd8c9786da2c33530699245eacc2b96d768b (patch) | |
tree | ad4e24fde24d62245442034d6c47e32fd7665fee /ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp | |
parent | 300346fad3379f3b95d5b30c7f23bc5b9b7c2900 (diff) | |
download | mariadb-git-b61bfd8c9786da2c33530699245eacc2b96d768b.tar.gz |
Make operation list on fragment fifo so that uncommitted operations
are undo-logged in correct order
Add bunch of testcases to autotest
ndb/src/kernel/blocks/dbtup/Dbtup.hpp:
Send fragrecord ptr to initOpConnection so that is does not
have to look it up every time (if needed)
Make operation list on fragment fifo so that uncommitted operations
are undo-logged in correct order
ndb/src/kernel/blocks/dbtup/DbtupAbort.cpp:
Send fragptr to initOpConnection
ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp:
dllist -> dlfifolist
ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp:
dllist -> dlfifolist
ndb/src/kernel/blocks/dbtup/DbtupGen.cpp:
Make operation list on fragment fifo so that uncommitted operations
are undo-logged in correct order
ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp:
Fix uninitialized variable c_start.m_startTime
which made startPartial and startPartitioned fail
ndb/test/ndbapi/testSystemRestart.cpp:
Added testSystemRestart -n SR9 which
demonstrates that two prepared operation on same
records _used to_ be undo-logged in wrong order makeing
system restart fail
ndb/test/run-test/daily-devel-tests.txt:
Add
* testSystemRestart -n SR6
Restart while some nodes have fs and other not
* testSystemRestart -n SR7
Restart in partition win
* testSystemRestart -n SR8
Restart in partition win, others starting during restart
* testSystemRestart -n SR9
Multiple ops on same record prepared before
Diffstat (limited to 'ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp')
-rw-r--r-- | ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp b/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp index fa3667b221e..cbd56c3281f 100644 --- a/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp +++ b/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp @@ -224,7 +224,8 @@ void Dbtup::removeActiveOpList(Operationrec* const regOperPtr) /* ---------------------------------------------------------------- */ /* INITIALIZATION OF ONE CONNECTION RECORD TO PREPARE FOR NEXT OP. */ /* ---------------------------------------------------------------- */ -void Dbtup::initOpConnection(Operationrec* const regOperPtr) +void Dbtup::initOpConnection(Operationrec* regOperPtr, + Fragrecord * fragPtrP) { Uint32 RinFragList = regOperPtr->inFragList; regOperPtr->transstate = IDLE; @@ -244,22 +245,18 @@ void Dbtup::initOpConnection(Operationrec* const regOperPtr) regOperPtr->inFragList = ZFALSE; if (tropPrevLinkPtr.i == RNIL) { ljam(); - FragrecordPtr regFragPtr; - regFragPtr.i = regOperPtr->fragmentPtr; - ptrCheckGuard(regFragPtr, cnoOfFragrec, fragrecord); - regFragPtr.p->firstusedOprec = tropNextLinkPtr.i; + fragPtrP->firstusedOprec = tropNextLinkPtr.i; } else { ljam(); ptrCheckGuard(tropPrevLinkPtr, cnoOfOprec, operationrec); tropPrevLinkPtr.p->nextOprecInList = tropNextLinkPtr.i; }//if if (tropNextLinkPtr.i == RNIL) { - ; + fragPtrP->lastusedOprec = tropPrevLinkPtr.i; } else { - ljam(); ptrCheckGuard(tropNextLinkPtr, cnoOfOprec, operationrec); tropNextLinkPtr.p->prevOprecInList = tropPrevLinkPtr.i; - }//if + } regOperPtr->prevOprecInList = RNIL; regOperPtr->nextOprecInList = RNIL; }//if @@ -336,7 +333,7 @@ void Dbtup::execTUP_COMMITREQ(Signal* signal) commitUpdate(signal, regOperPtr.p, regFragPtr.p, regTabPtr.p); removeActiveOpList(regOperPtr.p); }//if - initOpConnection(regOperPtr.p); + initOpConnection(regOperPtr.p, regFragPtr.p); }//execTUP_COMMITREQ() void |