Loading storage/ndb/src/kernel/blocks/dbtup/DbtupScan.cpp +61 −54 Original line number Diff line number Diff line Loading @@ -53,7 +53,14 @@ Dbtup::execACC_SCANREQ(Signal* signal) // flags Uint32 bits = 0; if (!AccScanReq::getLcpScanFlag(req->requestInfo)) if (AccScanReq::getLcpScanFlag(req->requestInfo)) { jam(); bits |= ScanOp::SCAN_LCP; c_scanOpPool.getPtr(scanPtr, c_lcp_scan_op); } else { // seize from pool and link to per-fragment list LocalDLList<ScanOp> list(c_scanOpPool, frag.m_scanList); Loading @@ -61,6 +68,7 @@ Dbtup::execACC_SCANREQ(Signal* signal) jam(); break; } } if (!AccScanReq::getNoDiskScanFlag(req->requestInfo) && tablePtr.p->m_no_of_disk_attributes) Loading @@ -81,17 +89,12 @@ Dbtup::execACC_SCANREQ(Signal* signal) else bits |= ScanOp::SCAN_LOCK_EX; } } else { jam(); // LCP scan and disk ndbrequire(frag.m_lcp_scan_op == c_lcp_scan_op); c_scanOpPool.getPtr(scanPtr, frag.m_lcp_scan_op); ndbrequire(scanPtr.p->m_fragPtrI == fragPtr.i); bits |= ScanOp::SCAN_LCP; if (tablePtr.p->m_attributes[MM].m_no_of_varsize > 0) { bits |= ScanOp::SCAN_VS; } if (AccScanReq::getLcpScanFlag(req->requestInfo)) { jam(); ndbrequire((bits & ScanOp::SCAN_DD) == 0); ndbrequire((bits & ScanOp::SCAN_LOCK) == 0); } bits |= AccScanReq::getNRScanFlag(req->requestInfo) ? ScanOp::SCAN_NR : 0; Loading Loading @@ -1107,16 +1110,17 @@ Dbtup::releaseScanOp(ScanOpPtr& scanPtr) fragPtr.i = scanPtr.p->m_fragPtrI; ptrCheckGuard(fragPtr, cnoOfFragrec, fragrecord); if(! (scanPtr.p->m_bits & ScanOp::SCAN_LCP)) if(scanPtr.p->m_bits & ScanOp::SCAN_LCP) { LocalDLList<ScanOp> list(c_scanOpPool, fragPtr.p->m_scanList); list.release(scanPtr); jam(); fragPtr.p->m_lcp_scan_op = RNIL; scanPtr.p->m_fragPtrI = RNIL; } else { ndbrequire(fragPtr.p->m_lcp_scan_op == scanPtr.i); fragPtr.p->m_lcp_scan_op = RNIL; scanPtr.p->m_fragPtrI = RNIL; jam(); LocalDLList<ScanOp> list(c_scanOpPool, fragPtr.p->m_scanList); list.release(scanPtr); } } Loading @@ -1129,6 +1133,8 @@ Dbtup::execLCP_FRAG_ORD(Signal* signal) tablePtr.i = req->tableId; ptrCheckGuard(tablePtr, cnoOfTablerec, tablerec); if (tablePtr.p->m_no_of_disk_attributes) { jam(); FragrecordPtr fragPtr; Uint32 fragId = req->fragmentId; Loading @@ -1147,3 +1153,4 @@ Dbtup::execLCP_FRAG_ORD(Signal* signal) scanFirst(signal, scanPtr); scanPtr.p->m_state = ScanOp::First; } } Loading
storage/ndb/src/kernel/blocks/dbtup/DbtupScan.cpp +61 −54 Original line number Diff line number Diff line Loading @@ -53,7 +53,14 @@ Dbtup::execACC_SCANREQ(Signal* signal) // flags Uint32 bits = 0; if (!AccScanReq::getLcpScanFlag(req->requestInfo)) if (AccScanReq::getLcpScanFlag(req->requestInfo)) { jam(); bits |= ScanOp::SCAN_LCP; c_scanOpPool.getPtr(scanPtr, c_lcp_scan_op); } else { // seize from pool and link to per-fragment list LocalDLList<ScanOp> list(c_scanOpPool, frag.m_scanList); Loading @@ -61,6 +68,7 @@ Dbtup::execACC_SCANREQ(Signal* signal) jam(); break; } } if (!AccScanReq::getNoDiskScanFlag(req->requestInfo) && tablePtr.p->m_no_of_disk_attributes) Loading @@ -81,17 +89,12 @@ Dbtup::execACC_SCANREQ(Signal* signal) else bits |= ScanOp::SCAN_LOCK_EX; } } else { jam(); // LCP scan and disk ndbrequire(frag.m_lcp_scan_op == c_lcp_scan_op); c_scanOpPool.getPtr(scanPtr, frag.m_lcp_scan_op); ndbrequire(scanPtr.p->m_fragPtrI == fragPtr.i); bits |= ScanOp::SCAN_LCP; if (tablePtr.p->m_attributes[MM].m_no_of_varsize > 0) { bits |= ScanOp::SCAN_VS; } if (AccScanReq::getLcpScanFlag(req->requestInfo)) { jam(); ndbrequire((bits & ScanOp::SCAN_DD) == 0); ndbrequire((bits & ScanOp::SCAN_LOCK) == 0); } bits |= AccScanReq::getNRScanFlag(req->requestInfo) ? ScanOp::SCAN_NR : 0; Loading Loading @@ -1107,16 +1110,17 @@ Dbtup::releaseScanOp(ScanOpPtr& scanPtr) fragPtr.i = scanPtr.p->m_fragPtrI; ptrCheckGuard(fragPtr, cnoOfFragrec, fragrecord); if(! (scanPtr.p->m_bits & ScanOp::SCAN_LCP)) if(scanPtr.p->m_bits & ScanOp::SCAN_LCP) { LocalDLList<ScanOp> list(c_scanOpPool, fragPtr.p->m_scanList); list.release(scanPtr); jam(); fragPtr.p->m_lcp_scan_op = RNIL; scanPtr.p->m_fragPtrI = RNIL; } else { ndbrequire(fragPtr.p->m_lcp_scan_op == scanPtr.i); fragPtr.p->m_lcp_scan_op = RNIL; scanPtr.p->m_fragPtrI = RNIL; jam(); LocalDLList<ScanOp> list(c_scanOpPool, fragPtr.p->m_scanList); list.release(scanPtr); } } Loading @@ -1129,6 +1133,8 @@ Dbtup::execLCP_FRAG_ORD(Signal* signal) tablePtr.i = req->tableId; ptrCheckGuard(tablePtr, cnoOfTablerec, tablerec); if (tablePtr.p->m_no_of_disk_attributes) { jam(); FragrecordPtr fragPtr; Uint32 fragId = req->fragmentId; Loading @@ -1147,3 +1153,4 @@ Dbtup::execLCP_FRAG_ORD(Signal* signal) scanFirst(signal, scanPtr); scanPtr.p->m_state = ScanOp::First; } }