summaryrefslogtreecommitdiff
path: root/ndb
diff options
context:
space:
mode:
authorunknown <jonas@perch.ndb.mysql.com>2006-06-30 11:25:37 +0200
committerunknown <jonas@perch.ndb.mysql.com>2006-06-30 11:25:37 +0200
commit250ea729a407c8467ab06cc1d074f900beae7547 (patch)
tree301850af077e17494989ce9a0398f7800c4a869a /ndb
parent6fd869716cb30e8c5b37523e9b58bf62f4899816 (diff)
parent79bb70355fff517aa99223c501c9b367e239491d (diff)
downloadmariadb-git-250ea729a407c8467ab06cc1d074f900beae7547.tar.gz
Merge perch.ndb.mysql.com:/home/jonas/src/50-work
into perch.ndb.mysql.com:/home/jonas/src/mysql-5.0 ndb/src/kernel/blocks/dblqh/Dblqh.hpp: Auto merged ndb/src/kernel/blocks/dblqh/DblqhMain.cpp: Auto merged
Diffstat (limited to 'ndb')
-rw-r--r--ndb/src/kernel/blocks/dblqh/Dblqh.hpp1
-rw-r--r--ndb/src/kernel/blocks/dblqh/DblqhMain.cpp54
2 files changed, 42 insertions, 13 deletions
diff --git a/ndb/src/kernel/blocks/dblqh/Dblqh.hpp b/ndb/src/kernel/blocks/dblqh/Dblqh.hpp
index f8e6292f7f2..d3ba8521226 100644
--- a/ndb/src/kernel/blocks/dblqh/Dblqh.hpp
+++ b/ndb/src/kernel/blocks/dblqh/Dblqh.hpp
@@ -235,6 +235,7 @@
#define ZSCAN_MARKERS 18
#define ZOPERATION_EVENT_REP 19
#define ZPREP_DROP_TABLE 20
+#define ZENABLE_EXPAND_CHECK 21
/* ------------------------------------------------------------------------- */
/* NODE STATE DURING SYSTEM RESTART, VARIABLES CNODES_SR_STATE */
diff --git a/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp b/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
index 09834d39af4..0ea49e47fc7 100644
--- a/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
+++ b/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
@@ -437,6 +437,33 @@ void Dblqh::execCONTINUEB(Signal* signal)
checkDropTab(signal);
return;
break;
+ case ZENABLE_EXPAND_CHECK:
+ {
+ jam();
+ fragptr.i = signal->theData[1];
+ if (fragptr.i != RNIL)
+ {
+ jam();
+ ptrCheckGuard(fragptr, cfragrecFileSize, fragrecord);
+ signal->theData[0] = fragptr.p->tabRef;
+ signal->theData[1] = fragptr.p->fragId;
+ sendSignal(DBACC_REF, GSN_EXPANDCHECK2, signal, 2, JBB);
+
+ signal->theData[0] = ZENABLE_EXPAND_CHECK;
+ signal->theData[1] = fragptr.p->nextFrag;
+ sendSignal(DBLQH_REF, GSN_CONTINUEB, signal, 2, JBB);
+ return;
+ }
+ else
+ {
+ jam();
+ StartRecConf * conf = (StartRecConf*)signal->getDataPtrSend();
+ conf->startingNodeId = getOwnNodeId();
+ sendSignal(cmasterDihBlockref, GSN_START_RECCONF, signal,
+ StartRecConf::SignalLength, JBB);
+ return;
+ }
+ }
default:
ndbrequire(false);
break;
@@ -15589,20 +15616,21 @@ void Dblqh::srFourthComp(Signal* signal)
} else if ((cstartType == NodeState::ST_NODE_RESTART) ||
(cstartType == NodeState::ST_SYSTEM_RESTART)) {
jam();
- StartRecConf * conf = (StartRecConf*)signal->getDataPtrSend();
- conf->startingNodeId = getOwnNodeId();
- sendSignal(cmasterDihBlockref, GSN_START_RECCONF, signal,
- StartRecConf::SignalLength, JBB);
- if(cstartType == NodeState::ST_SYSTEM_RESTART){
- fragptr.i = c_redo_log_complete_frags;
- while(fragptr.i != RNIL){
- ptrCheckGuard(fragptr, cfragrecFileSize, fragrecord);
- signal->theData[0] = fragptr.p->tabRef;
- signal->theData[1] = fragptr.p->fragId;
- sendSignal(DBACC_REF, GSN_EXPANDCHECK2, signal, 2, JBB);
- fragptr.i = fragptr.p->nextFrag;
- }
+ if(cstartType == NodeState::ST_SYSTEM_RESTART)
+ {
+ jam();
+ signal->theData[0] = ZENABLE_EXPAND_CHECK;
+ signal->theData[1] = c_redo_log_complete_frags;
+ sendSignal(DBLQH_REF, GSN_CONTINUEB, signal, 2, JBB);
+ }
+ else
+ {
+ jam();
+ StartRecConf * conf = (StartRecConf*)signal->getDataPtrSend();
+ conf->startingNodeId = getOwnNodeId();
+ sendSignal(cmasterDihBlockref, GSN_START_RECCONF, signal,
+ StartRecConf::SignalLength, JBB);
}
} else {
ndbrequire(false);