Loading ndb/include/ndbapi/NdbIndexScanOperation.hpp +4 −2 Original line number Diff line number Diff line Loading @@ -41,7 +41,9 @@ public: * @param parallel No of fragments to scan in parallel (0=max) */ virtual int readTuples(LockMode lock_mode = LM_Read, Uint32 scan_flags = 0, Uint32 parallel = 0); Uint32 scan_flags = 0, Uint32 parallel = 0, Uint32 batch = 0); #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL /** Loading Loading @@ -69,7 +71,7 @@ public: (SF_ReadRangeNo & -(Int32)read_range_no) | (SF_KeyInfo & -(Int32)keyinfo); return readTuples(lock_mode, scan_flags, parallel); return readTuples(lock_mode, scan_flags, parallel, batch); } #endif Loading ndb/include/ndbapi/NdbScanOperation.hpp +3 −1 Original line number Diff line number Diff line Loading @@ -57,7 +57,9 @@ public: */ virtual int readTuples(LockMode lock_mode = LM_Read, Uint32 scan_flags = 0, Uint32 parallel = 0); Uint32 scan_flags = 0, Uint32 parallel = 0, Uint32 batch = 0); #ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED /** Loading ndb/src/kernel/blocks/dblqh/Dblqh.hpp +1 −0 Original line number Diff line number Diff line Loading @@ -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 */ Loading ndb/src/kernel/blocks/dblqh/DblqhMain.cpp +45 −17 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -7373,15 +7400,15 @@ void Dblqh::scanLockReleasedLab(Signal* signal) scanptr.p->m_curr_batch_size_rows = 0; scanptr.p->m_curr_batch_size_bytes = 0; closeScanLab(signal); } else if (scanptr.p->m_last_row && !scanptr.p->scanLockHold) { jam(); closeScanLab(signal); return; } else if (scanptr.p->check_scan_batch_completed() && scanptr.p->scanLockHold != ZTRUE) { jam(); scanptr.p->scanState = ScanRecord::WAIT_SCAN_NEXTREQ; sendScanFragConf(signal, ZFALSE); } else if (scanptr.p->m_last_row && !scanptr.p->scanLockHold) { jam(); closeScanLab(signal); return; } else { jam(); /* Loading Loading @@ -15589,20 +15616,21 @@ void Dblqh::srFourthComp(Signal* signal) } else if ((cstartType == NodeState::ST_NODE_RESTART) || (cstartType == NodeState::ST_SYSTEM_RESTART)) { jam(); 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); 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; } } } else { ndbrequire(false); ndb/src/kernel/blocks/dbtc/DbtcMain.cpp +12 −0 Original line number Diff line number Diff line Loading @@ -7047,6 +7047,18 @@ void Dbtc::checkScanActiveInFailedLqh(Signal* signal, found = true; } } ScanFragList deliv(c_scan_frag_pool, scanptr.p->m_delivered_scan_frags); for(deliv.first(ptr); !ptr.isNull(); deliv.next(ptr)) { jam(); if (refToNode(ptr.p->lqhBlockref) == failedNodeId) { jam(); found = true; break; } } } if(found){ jam(); Loading Loading
ndb/include/ndbapi/NdbIndexScanOperation.hpp +4 −2 Original line number Diff line number Diff line Loading @@ -41,7 +41,9 @@ public: * @param parallel No of fragments to scan in parallel (0=max) */ virtual int readTuples(LockMode lock_mode = LM_Read, Uint32 scan_flags = 0, Uint32 parallel = 0); Uint32 scan_flags = 0, Uint32 parallel = 0, Uint32 batch = 0); #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL /** Loading Loading @@ -69,7 +71,7 @@ public: (SF_ReadRangeNo & -(Int32)read_range_no) | (SF_KeyInfo & -(Int32)keyinfo); return readTuples(lock_mode, scan_flags, parallel); return readTuples(lock_mode, scan_flags, parallel, batch); } #endif Loading
ndb/include/ndbapi/NdbScanOperation.hpp +3 −1 Original line number Diff line number Diff line Loading @@ -57,7 +57,9 @@ public: */ virtual int readTuples(LockMode lock_mode = LM_Read, Uint32 scan_flags = 0, Uint32 parallel = 0); Uint32 scan_flags = 0, Uint32 parallel = 0, Uint32 batch = 0); #ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED /** Loading
ndb/src/kernel/blocks/dblqh/Dblqh.hpp +1 −0 Original line number Diff line number Diff line Loading @@ -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 */ Loading
ndb/src/kernel/blocks/dblqh/DblqhMain.cpp +45 −17 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -7373,15 +7400,15 @@ void Dblqh::scanLockReleasedLab(Signal* signal) scanptr.p->m_curr_batch_size_rows = 0; scanptr.p->m_curr_batch_size_bytes = 0; closeScanLab(signal); } else if (scanptr.p->m_last_row && !scanptr.p->scanLockHold) { jam(); closeScanLab(signal); return; } else if (scanptr.p->check_scan_batch_completed() && scanptr.p->scanLockHold != ZTRUE) { jam(); scanptr.p->scanState = ScanRecord::WAIT_SCAN_NEXTREQ; sendScanFragConf(signal, ZFALSE); } else if (scanptr.p->m_last_row && !scanptr.p->scanLockHold) { jam(); closeScanLab(signal); return; } else { jam(); /* Loading Loading @@ -15589,20 +15616,21 @@ void Dblqh::srFourthComp(Signal* signal) } else if ((cstartType == NodeState::ST_NODE_RESTART) || (cstartType == NodeState::ST_SYSTEM_RESTART)) { jam(); 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); 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; } } } else { ndbrequire(false);
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp +12 −0 Original line number Diff line number Diff line Loading @@ -7047,6 +7047,18 @@ void Dbtc::checkScanActiveInFailedLqh(Signal* signal, found = true; } } ScanFragList deliv(c_scan_frag_pool, scanptr.p->m_delivered_scan_frags); for(deliv.first(ptr); !ptr.isNull(); deliv.next(ptr)) { jam(); if (refToNode(ptr.p->lqhBlockref) == failedNodeId) { jam(); found = true; break; } } } if(found){ jam(); Loading