List:Internals« Previous MessageNext Message »
From:jonas Date:November 24 2005 3:11pm
Subject:bk commit into 5.1 tree (jonas:1.1963)
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.1963 05/11/24 16:11:34 jonas@stripped +5 -0
  ndb - fix various tup scan issues

  storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp
    1.95 05/11/24 16:11:31 jonas@stripped +1 -0
    Make pseudo column mm columns

  storage/ndb/src/kernel/blocks/dbtup/DbtupScan.cpp
    1.11 05/11/24 16:11:31 jonas@stripped +3 -2
    Impl. NoDiskScan for TupScan

  storage/ndb/src/kernel/blocks/dbtup/DbtupDiskAlloc.cpp
    1.4 05/11/24 16:11:31 jonas@stripped +1 -0
    Init m_first_page_no also during SR

  storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
    1.84 05/11/24 16:11:31 jonas@stripped +2 -0
    Impl. NoDiskScan for TupScan

  storage/ndb/include/kernel/signaldata/AccScan.hpp
    1.7 05/11/24 16:11:31 jonas@stripped +19 -1
    Impl. NoDiskScan for TupScan

# 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:	perch.ndb.mysql.com
# Root:	/home/jonas/src/51-ndb

--- 1.3/storage/ndb/src/kernel/blocks/dbtup/DbtupDiskAlloc.cpp	2005-11-10 12:04:37 +01:00
+++ 1.4/storage/ndb/src/kernel/blocks/dbtup/DbtupDiskAlloc.cpp	2005-11-24 16:11:31 +01:00
@@ -1062,6 +1062,7 @@
       
       ext.p->m_key = *key;
       ndbout << "allocated " << pages << " pages: " << ext.p->m_key << endl;
+      ext.p->m_first_page_no = ext.p->m_key.m_page_no;
       bzero(ext.p->m_free_page_count, sizeof(ext.p->m_free_page_count));
       ext.p->m_free_space= alloc.m_page_free_bits_map[0] * pages; 
       ext.p->m_free_page_count[0]= pages; // All pages are "free"-est

--- 1.6/storage/ndb/include/kernel/signaldata/AccScan.hpp	2005-05-02 13:19:44 +02:00
+++ 1.7/storage/ndb/include/kernel/signaldata/AccScan.hpp	2005-11-24 16:11:31 +01:00
@@ -58,6 +58,9 @@
   static void setLockMode(Uint32 & requestInfo, Uint32 lockMode);
   static void setReadCommittedFlag(Uint32 & requestInfo, Uint32 readCommitted);
   static void setDescendingFlag(Uint32 & requestInfo, Uint32 descending);
+
+  static Uint32 getNoDiskScanFlag(const Uint32 & requestInfo);
+  static void setNoDiskScanFlag(Uint32 & requestInfo, Uint32 nodisk);
 };
 
 /**
@@ -66,15 +69,17 @@
  * l = Lock Mode             - 1  Bit 2
  * h = Read Committed        - 1  Bit 5
  * z = Descending (TUX)      - 1  Bit 6
+ * d = No disk scan          - 1  Bit 7
  *
  *           1111111111222222222233
  * 01234567890123456789012345678901
- *   l  hz   
+ *   l  hzd   
  */
 #define AS_LOCK_MODE_SHIFT       (2)
 #define AS_LOCK_MODE_MASK        (1)
 #define AS_READ_COMMITTED_SHIFT  (5)
 #define AS_DESCENDING_SHIFT      (6)
+#define AS_NO_DISK_SCAN          (7)
 
 inline 
 Uint32
@@ -113,6 +118,19 @@
 AccScanReq::setDescendingFlag(UintR & requestInfo, UintR val){
   ASSERT_BOOL(val, "AccScanReq::setDescendingFlag");
   requestInfo |= (val << AS_DESCENDING_SHIFT);
+}
+
+inline
+Uint32
+AccScanReq::getNoDiskScanFlag(const Uint32 & requestInfo){
+  return (requestInfo >> AS_NO_DISK_SCAN) & 1;
+}
+
+inline
+void
+AccScanReq::setNoDiskScanFlag(UintR & requestInfo, UintR val){
+  ASSERT_BOOL(val, "AccScanReq::setNoDiskScanFlag");
+  requestInfo |= (val << AS_NO_DISK_SCAN);
 }
 
 class AccScanConf {

--- 1.83/storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp	2005-11-23 10:12:40 +01:00
+++ 1.84/storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp	2005-11-24 16:11:31 +01:00
@@ -7616,6 +7616,8 @@
   AccScanReq::setLockMode(req->requestInfo, scanptr.p->scanLockMode);
   AccScanReq::setReadCommittedFlag(req->requestInfo, scanptr.p->readCommitted);
   AccScanReq::setDescendingFlag(req->requestInfo, scanptr.p->descending);
+  AccScanReq::setNoDiskScanFlag(req->requestInfo, 
+				!tcConnectptr.p->m_disk_table);
   req->transId1 = tcConnectptr.p->transid[0];
   req->transId2 = tcConnectptr.p->transid[1];
   req->savePointId = tcConnectptr.p->savePointId;

--- 1.94/storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp	2005-11-23 07:50:51 +01:00
+++ 1.95/storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp	2005-11-24 16:11:31 +01:00
@@ -328,6 +328,7 @@
   } else {
     abort();
   }
+  col->m_impl.m_storageType = NDB_STORAGETYPE_MEMORY;
   return col;
 }
 

--- 1.10/storage/ndb/src/kernel/blocks/dbtup/DbtupScan.cpp	2005-11-24 12:03:22 +01:00
+++ 1.11/storage/ndb/src/kernel/blocks/dbtup/DbtupScan.cpp	2005-11-24 16:11:31 +01:00
@@ -60,8 +60,9 @@
 	jam();
 	break;
       }
-      if (tablePtr.p->m_attributes[DD].m_no_of_fixsize +
-          tablePtr.p->m_attributes[DD].m_no_of_varsize > 0) {
+      if (!AccScanReq::getNoDiskScanFlag(req->requestInfo)
+	  && tablePtr.p->m_no_of_disk_attributes)
+      {
         bits |= ScanOp::SCAN_DD;
       }
       bool mm = (bits & ScanOp::SCAN_DD);
Thread
bk commit into 5.1 tree (jonas:1.1963)jonas24 Nov