List:Internals« Previous MessageNext Message »
From:jonas Date:August 29 2005 8:23am
Subject:bk commit into 5.1 tree (jonas:1.1976)
View as plain text  
Below is the list of changes that have just been committed into a local
5.1 repository of jonas. When jonas does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet
  1.1976 05/08/29 10:23:14 jonas@eel.(none) +5 -0
  ndb diskdata
    fix NR
    fix SR scan of extent headers

  storage/ndb/src/kernel/vm/ArrayPool.hpp
    1.10 05/08/29 10:23:09 jonas@eel.(none) +2 -0
    Init variable

  storage/ndb/src/kernel/blocks/tsman.cpp
    1.45 05/08/29 10:23:09 jonas@eel.(none) +8 -4
    Fix SR handling wrt scannin extent headers

  storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
    1.96 05/08/29 10:23:09 jonas@eel.(none) +22 -46
    Fix simple stupid NR of diskdata
      (make sure to load diskpage before running TUPKEYREQ)

  storage/ndb/src/kernel/SimBlockList.cpp
    1.16 05/08/29 10:23:09 jonas@eel.(none) +3 -3
    merge error

  storage/ndb/include/kernel/BlockNumbers.h
    1.9 05/08/29 10:23:09 jonas@eel.(none) +0 -1
    merge error

# This is a BitKeeper patch.  What follows are the unified diffs for the
# set of deltas contained in the patch.  The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User:	jonas
# Host:	eel.(none)
# Root:	/home/jonas/src/mysql-5.1-ndb-dd

--- 1.44/storage/ndb/src/kernel/blocks/tsman.cpp	2005-08-26 13:53:56 +02:00
+++ 1.45/storage/ndb/src/kernel/blocks/tsman.cpp	2005-08-29 10:23:09 +02:00
@@ -899,13 +899,17 @@
   ptr.p->m_online.m_first_free_extent = per_page;
   ptr.p->m_online.m_lcp_free_extent_head = RNIL;  
   ptr.p->m_online.m_lcp_free_extent_tail = RNIL;  
+  ptr.p->m_online.m_data_pages = data_pages;
 
   Ptr<Tablespace> ts_ptr;
   m_tablespace_pool.getPtr(ts_ptr, ptr.p->m_tablespace_ptr_i);
-  LocalDLList<Datafile> free(m_file_pool, ts_ptr.p->m_free_files);
-  LocalDLList<Datafile> meta(m_file_pool, ts_ptr.p->m_meta_files);
-  meta.remove(ptr);
-  free.add(ptr);
+  if (!getNodeState().getSystemRestartInProgress())
+  {
+    LocalDLList<Datafile> free(m_file_pool, ts_ptr.p->m_free_files);
+    LocalDLList<Datafile> meta(m_file_pool, ts_ptr.p->m_meta_files);
+    meta.remove(ptr);
+    free.add(ptr);
+  }
   m_file_hash.add(ptr);
   
   CreateFileImplConf* conf= (CreateFileImplConf*)signal->getDataPtr();

--- 1.8/storage/ndb/include/kernel/BlockNumbers.h	2005-08-27 08:12:18 +02:00
+++ 1.9/storage/ndb/include/kernel/BlockNumbers.h	2005-08-29 10:23:09 +02:00
@@ -44,7 +44,6 @@
 #define TRIX        0xFF
 #define DBUTIL     0x100
 #define SUMA       0x101
-#define GREP       0x102
 #define DBTUX      0x102
 #define TSMAN      0x103
 #define LGMAN      0x104

--- 1.95/storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp	2005-08-27 08:12:19 +02:00
+++ 1.96/storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp	2005-08-29 10:23:09 +02:00
@@ -8102,6 +8102,7 @@
     fragPtrP= c_fragment_pool.getPtr(fragPtrP->tableFragptr);
   }
 
+  tcConnectptr.p->transactionState = TcConnectionrec::SCAN_TUPKEY;
   if(tcConnectptr.p->m_disk_table)
   {
     next_scanconf_load_diskpage(signal, scanptr, tcConnectptr,fragPtrP);
@@ -8133,12 +8134,9 @@
   {
     next_scanconf_tupkeyreq(signal, scanptr, regTcPtr.p, fragPtrP, res);
   }
-  else if(res == 0)
-  {
-    regTcPtr.p->transactionState = TcConnectionrec::SCAN_TUPKEY;
-  }
-  else 
+  else if(unlikely(res != 0))
   {
+    jam();
     TupKeyRef * ref = (TupKeyRef *)signal->getDataPtr();
     ref->userRef= regTcPtr.i;
     ref->errorCode= ~0;
@@ -8193,7 +8191,6 @@
   Uint32 reqinfo = (scanPtr.p->scanLockHold == ZFALSE);
   reqinfo = reqinfo + (regTcPtr->operation << 6);
   reqinfo = reqinfo + (regTcPtr->opExec << 10);
-  regTcPtr->transactionState = TcConnectionrec::SCAN_TUPKEY;
   
   TupKeyReq * const tupKeyReq = (TupKeyReq *)signal->getDataPtrSend(); 
   
@@ -9058,6 +9055,7 @@
   scanptr.p->rangeScan = 0;
   scanptr.p->tupScan = 0;
   seizeTcrec();
+  tcConnectptr.p->clientBlockref = userRef;
   
   /**
    * Remove implicit cast/usage of CopyFragReq
@@ -9065,7 +9063,6 @@
   //initCopyrec(signal);
   scanptr.p->copyPtr = copyPtr;
   scanptr.p->scanType = ScanRecord::COPY;
-  scanptr.p->scanApiBlockref = userRef;
   scanptr.p->scanNodeId = nodeId;
   scanptr.p->scanTcrec = tcConnectptr.i;
   scanptr.p->scanSchemaVersion = copyFragReq->schemaVersion;
@@ -9074,9 +9071,12 @@
   scanptr.p->scanNumber = NR_ScanNo;
   scanptr.p->scanKeyinfoFlag = 0; // Don't put into hash
   scanptr.p->fragPtrI = fragptr.i;
+  scanptr.p->scanApiOpPtr = tcConnectptr.i;
+  scanptr.p->scanApiBlockref = reference();
   fragptr.p->m_scanNumberMask.clear(NR_ScanNo);
   scanptr.p->scanBlockref = DBACC_REF;
-
+  scanptr.p->scanLockHold = ZFALSE;
+  
   initScanTc(0,
              0,
              (DBLQH << 20) + (cownNodeid << 8),
@@ -9246,45 +9246,21 @@
 
   set_acc_ptr_in_scan_record(scanptr.p, 0, nextScanConf->accOperationPtr);
   initCopyTc(signal);
-  copySendTupkeyReqLab(signal);
-  return;
-}//Dblqh::nextScanConfCopyLab()
-
-void Dblqh::copySendTupkeyReqLab(Signal* signal) 
-{
-  Uint32 reqinfo = 0;
-  Uint32 tupFragPtr;
 
-  reqinfo = reqinfo + (tcConnectptr.p->operation << 6);
-  reqinfo = reqinfo + (tcConnectptr.p->opExec << 10);
-  tcConnectptr.p->transactionState = TcConnectionrec::COPY_TUPKEY;
+  Fragrecord* fragPtrP= fragptr.p;
   scanptr.p->scanState = ScanRecord::WAIT_TUPKEY_COPY;
-  fragptr.i = tcConnectptr.p->fragmentptr;
-  c_fragment_pool.getPtr(fragptr);
-  tupFragPtr = fragptr.p->tupFragptr;
+  tcConnectptr.p->transactionState = TcConnectionrec::COPY_TUPKEY;
+  if(tcConnectptr.p->m_disk_table)
   {
-    TupKeyReq * const tupKeyReq = (TupKeyReq *)signal->getDataPtrSend(); 
-
-    tupKeyReq->connectPtr = tcConnectptr.p->tupConnectrec;
-    tupKeyReq->request = reqinfo;
-    tupKeyReq->keyRef1 = scanptr.p->scanLocalref[0];
-    tupKeyReq->keyRef2 = scanptr.p->scanLocalref[1];
-    tupKeyReq->attrBufLen = 0;
-    tupKeyReq->opRef = tcConnectptr.i;
-    tupKeyReq->applRef = cownref;
-    tupKeyReq->storedProcedure = scanptr.p->scanStoredProcId;
-    tupKeyReq->transId1 = tcConnectptr.p->transid[0];
-    tupKeyReq->transId2 = tcConnectptr.p->transid[1];
-    tupKeyReq->fragPtr = tupFragPtr;
-    tupKeyReq->primaryReplica = (tcConnectptr.p->seqNoReplica == 0)?true:false;
-    tupKeyReq->coordinatorTC = tcConnectptr.p->tcBlockref;
-    tupKeyReq->tcOpIndex = tcConnectptr.p->tcOprec;
-    tupKeyReq->savePointId = tcConnectptr.p->savePointId;
-    Uint32 blockNo = refToBlock(tcConnectptr.p->tcTupBlockref);
-    EXECUTE_DIRECT(blockNo, GSN_TUPKEYREQ, signal, 
-               TupKeyReq::SignalLength);
+    next_scanconf_load_diskpage(signal, scanptr, tcConnectptr,fragPtrP);
   }
-}//Dblqh::copySendTupkeyReqLab()
+  else
+  {
+    next_scanconf_tupkeyreq(signal, scanptr, tcConnectptr.p, fragPtrP, RNIL);
+  }
+  return;
+}//Dblqh::nextScanConfCopyLab()
+
 
 /*---------------------------------------------------------------------------*/
 /*   USED IN COPYING OPERATION TO RECEIVE ATTRINFO FROM TUP.                 */
@@ -9660,7 +9636,7 @@
     ref->tableId = fragptr.p->tabRef;
     ref->fragId = fragptr.p->fragId;
     ref->errorCode = ZNODE_FAILURE_ERROR;
-    sendSignal(scanptr.p->scanApiBlockref, GSN_COPY_FRAGREF, signal,
+    sendSignal(tcConnectptr.p->clientBlockref, GSN_COPY_FRAGREF, signal,
                CopyFragRef::SignalLength, JBB);
   } else {
     if (scanptr.p->scanErrorCounter > 0) {
@@ -9672,7 +9648,7 @@
       ref->tableId = fragptr.p->tabRef;
       ref->fragId = fragptr.p->fragId;
       ref->errorCode = tcConnectptr.p->errorCode;
-      sendSignal(scanptr.p->scanApiBlockref, GSN_COPY_FRAGREF, signal,
+      sendSignal(tcConnectptr.p->clientBlockref, GSN_COPY_FRAGREF, signal,
                  CopyFragRef::SignalLength, JBB);
     } else {
       jam();
@@ -9682,7 +9658,7 @@
       conf->startingNodeId = scanptr.p->scanNodeId;
       conf->tableId = tcConnectptr.p->tableref;
       conf->fragId = tcConnectptr.p->fragmentid;
-      sendSignal(scanptr.p->scanApiBlockref, GSN_COPY_FRAGCONF, signal,
+      sendSignal(tcConnectptr.p->clientBlockref, GSN_COPY_FRAGCONF, signal,
                  CopyFragConf::SignalLength, JBB);
     }//if
   }//if

--- 1.15/storage/ndb/src/kernel/SimBlockList.cpp	2005-08-27 08:12:18 +02:00
+++ 1.16/storage/ndb/src/kernel/SimBlockList.cpp	2005-08-29 10:23:09 +02:00
@@ -106,9 +106,9 @@
   theList[14] = NEW_BLOCK(Backup)(conf);
   theList[15] = NEW_BLOCK(DbUtil)(conf);
   theList[16] = NEW_BLOCK(Suma)(conf);
-  theList[17] = 0;
-  theList[18] = NEW_BLOCK(Dbtux)(conf);
-  theList[19] = NEW_BLOCK(Restore)(conf);
+  theList[17] = NEW_BLOCK(Dbtux)(conf);
+  theList[18] = NEW_BLOCK(Restore)(conf);
+  assert(NO_OF_BLOCKS == 19);
 }
 
 void

--- 1.9/storage/ndb/src/kernel/vm/ArrayPool.hpp	2005-08-08 01:23:31 +02:00
+++ 1.10/storage/ndb/src/kernel/vm/ArrayPool.hpp	2005-08-29 10:23:09 +02:00
@@ -187,6 +187,7 @@
   size = 0;
   noOfFree = 0;
   theArray = 0;
+  alloc_ptr = 0;
 #ifdef ARRAY_GUARD
   theAllocatedBitmask = 0;
 #endif
@@ -198,6 +199,7 @@
   if(theArray != 0){
     NdbMem_Free(alloc_ptr);
     theArray = 0;
+    alloc_ptr = 0;
 #ifdef ARRAY_GUARD
     delete []theAllocatedBitmask;
     theAllocatedBitmask = 0;
Thread
bk commit into 5.1 tree (jonas:1.1976)jonas29 Aug