List:Internals« Previous MessageNext Message »
From:jonas.oreland Date:July 13 2005 3:05pm
Subject:bk commit into 5.1 tree (joreland:1.1941)
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.1941 05/07/13 15:05:46 joreland@stripped +5 -0
  ndb diskdata
    support scan wo/ reading disk at all
    (in ScanFragReq atleast, used by LCP)

  storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp
    1.68 05/07/13 15:05:41 joreland@stripped +2 -1
    Impl. noDiskFlag for ScanFragReq

  storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
    1.86 05/07/13 15:05:41 joreland@stripped +7 -6
    Impl. noDiskFlag for ScanFragReq

  storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp
    1.49 05/07/13 15:05:41 joreland@stripped +1 -1
    Impl. noDiskFlag for ScanFragReq

  storage/ndb/src/kernel/blocks/backup/Backup.cpp
    1.44 05/07/13 15:05:41 joreland@stripped +1 -0
    Impl. noDiskFlag for ScanFragReq

  storage/ndb/include/kernel/signaldata/ScanFrag.hpp
    1.13 05/07/13 15:05:41 joreland@stripped +18 -1
    Impl. noDiskFlag for ScanFragReq

# 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:	joreland
# Host:	eel.(none)
# Root:	/home/jonas/src/mysql-5.1-ndb-dd

--- 1.12/storage/ndb/include/kernel/signaldata/ScanFrag.hpp	2005-05-24 17:30:57 +02:00
+++ 1.13/storage/ndb/include/kernel/signaldata/ScanFrag.hpp	2005-07-13 15:05:41 +02:00
@@ -60,6 +60,7 @@
   static Uint32 getTupScanFlag(const Uint32 & requestInfo);
   static Uint32 getAttrLen(const Uint32 & requestInfo);
   static Uint32 getScanPrio(const Uint32 & requestInfo);
+  static Uint32 getNoDiskFlag(const Uint32 & requestInfo);
   
   static void setLockMode(Uint32 & requestInfo, Uint32 lockMode);
   static void setHoldLockFlag(Uint32 & requestInfo, Uint32 holdLock);
@@ -70,6 +71,7 @@
   static void setTupScanFlag(Uint32 & requestInfo, Uint32 tupScan);
   static void setAttrLen(Uint32 & requestInfo, Uint32 attrLen);
   static void setScanPrio(Uint32& requestInfo, Uint32 prio);
+  static void setNoDiskFlag(Uint32& requestInfo, Uint32 val);
 };
 
 class KeyInfo20 {
@@ -196,6 +198,7 @@
  * Request Info
  *
  * a = Length of attrinfo    - 16 Bits (16-31)
+ * d = No disk               - 1  Bit 4
  * l = Lock Mode             - 1  Bit 5
  * h = Hold lock             - 1  Bit 7
  * k = Keyinfo               - 1  Bit 8
@@ -207,11 +210,12 @@
  *
  *           1111111111222222222233
  * 01234567890123456789012345678901
- *      lxhkrztppppaaaaaaaaaaaaaaaa 
+ *     dlxhkrztppppaaaaaaaaaaaaaaaa 
  */
 #define SF_LOCK_MODE_SHIFT   (5)
 #define SF_LOCK_MODE_MASK    (1)
 
+#define SF_NO_DISK_SHIFT     (4)
 #define SF_HOLD_LOCK_SHIFT   (7)
 #define SF_KEYINFO_SHIFT     (8)
 #define SF_READ_COMMITTED_SHIFT  (9)
@@ -340,6 +344,19 @@
 ScanFragReq::setAttrLen(UintR & requestInfo, UintR val){
   ASSERT_MAX(val, SF_ATTR_LEN_MASK, "ScanFragReq::setAttrLen");
   requestInfo |= (val << SF_ATTR_LEN_SHIFT);
+}
+
+inline
+Uint32
+ScanFragReq::getNoDiskFlag(const Uint32 & requestInfo){
+  return (requestInfo >> SF_NO_DISK_SHIFT) & 1;
+}
+
+inline
+void
+ScanFragReq::setNoDiskFlag(UintR & requestInfo, UintR val){
+  ASSERT_BOOL(val, "ScanFragReq::setNoDiskFlag");
+  requestInfo |= (val << SF_NO_DISK_SHIFT);
 }
 
 inline

--- 1.43/storage/ndb/src/kernel/blocks/backup/Backup.cpp	2005-07-07 16:56:39 +02:00
+++ 1.44/storage/ndb/src/kernel/blocks/backup/Backup.cpp	2005-07-13 15:05:41 +02:00
@@ -3335,6 +3335,7 @@
     {
       ScanFragReq::setScanPrio(req->requestInfo, 1);
       ScanFragReq::setTupScanFlag(req->requestInfo, 1);
+      ScanFragReq::setNoDiskFlag(req->requestInfo, 1);
     }
     req->transId1 = 0;
     req->transId2 = (BACKUP << 20) + (getOwnNodeId() << 8);

--- 1.48/storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp	2005-07-07 16:56:39 +02:00
+++ 1.49/storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp	2005-07-13 15:05:41 +02:00
@@ -2214,7 +2214,7 @@
   void sendLqhAttrinfoSignal(Signal* signal);
   void sendKeyinfoAcc(Signal* signal, Uint32 pos);
   Uint32 initScanrec(const class ScanFragReq *);
-  void initScanTc(Signal* signal,
+  void initScanTc(const class ScanFragReq *,
                   Uint32 transid1,
                   Uint32 transid2,
                   Uint32 fragId,

--- 1.85/storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp	2005-07-13 10:55:43 +02:00
+++ 1.86/storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp	2005-07-13 15:05:41 +02:00
@@ -7576,7 +7576,7 @@
   }//if
 
   ndbrequire(c_scanRecordPool.seize(scanptr));
-  initScanTc(signal,
+  initScanTc(scanFragReq,
              transid1,
              transid2,
              fragId,
@@ -8228,7 +8228,7 @@
   }
   else
   {
-    next_scanconf_tupkeyreq(signal, scanptr, tcConnectptr.p, fragPtrP, 0);
+    next_scanconf_tupkeyreq(signal, scanptr, tcConnectptr.p, fragPtrP, RNIL);
   }
 }
 
@@ -8816,7 +8816,7 @@
  *
  *       SUBROUTINE SHORT NAME = IST
  * ========================================================================= */
-void Dblqh::initScanTc(Signal* signal,
+void Dblqh::initScanTc(const ScanFragReq* req,
                        Uint32 transid1,
                        Uint32 transid2,
                        Uint32 fragId,
@@ -8846,8 +8846,9 @@
   TablerecPtr tTablePtr;
   tTablePtr.i = tabptr.p->primaryTableId;
   ptrCheckGuard(tTablePtr, ctabrecFileSize, tablerec);
-  tcConnectptr.p->m_disk_table = tTablePtr.p->m_disk_table;  
-  
+  tcConnectptr.p->m_disk_table = tTablePtr.p->m_disk_table &&
+    (!req || !ScanFragReq::getNoDiskFlag(req->requestInfo));  
+
   tabptr.p->usageCount++;
 }//Dblqh::initScanTc()
 
@@ -9223,7 +9224,7 @@
   fragptr.p->m_scanNumberMask.clear(NR_ScanNo);
   scanptr.p->scanBlockref = DBACC_REF;
 
-  initScanTc(signal,
+  initScanTc(0,
              0,
              (DBLQH << 20) + (cownNodeid << 8),
              fragId,

--- 1.67/storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp	2005-07-13 10:55:43 +02:00
+++ 1.68/storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp	2005-07-13 15:05:41 +02:00
@@ -865,7 +865,8 @@
    if (Roptype == ZREAD) {
      jam();
      
-     if (setup_read(&req_struct, regOperPtr, regFragPtr, regTabPtr, true))
+     if (setup_read(&req_struct, regOperPtr, regFragPtr, regTabPtr, 
+		    disk_page != RNIL))
      {
        if(handleReadReq(signal, regOperPtr, regTabPtr, &req_struct) != -1) 
        {
Thread
bk commit into 5.1 tree (joreland:1.1941)jonas.oreland13 Jul