Commit 27181aa1 authored by unknown's avatar unknown
Browse files

Merge joreland@bk-internal.mysql.com:/home/bk/mysql-5.0

into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.0

parents 3e085bd8 250ea729
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -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
  /**
@@ -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

+3 −1
Original line number Diff line number Diff line
@@ -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
  /**
+1 −0
Original line number Diff line number Diff line
@@ -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        */
+45 −17
Original line number Diff line number Diff line
@@ -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;
@@ -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();
      /*
@@ -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);
+12 −0
Original line number Diff line number Diff line
@@ -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