List:Internals« Previous MessageNext Message »
From:jonas.oreland Date:April 5 2005 9:37am
Subject:bk commit into 5.1-ndb tree (joreland:1.1817)
View as plain text  
Below is the list of changes that have just been committed into a local
5.1-ndb 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.1817 05/04/05 09:37:43 joreland@stripped +3 -0
  wl1870 - ndb
    fix abort of grow when chained

  ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp
    1.59 05/04/05 09:37:39 joreland@stripped +0 -44
    remove debug code

  ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp
    1.45 05/04/05 09:37:39 joreland@stripped +1 -35
    remove debug code

  ndb/src/kernel/blocks/dbtup/DbtupAbort.cpp
    1.31 05/04/05 09:37:39 joreland@stripped +22 -8
    Fix abort of chained (grown) records

# 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.hemma.oreland.se
# Root:	/home/jonas/src/mysql-5.1-ndb-dd

--- 1.30/ndb/src/kernel/blocks/dbtup/DbtupAbort.cpp	Tue Apr  5 08:57:51 2005
+++ 1.31/ndb/src/kernel/blocks/dbtup/DbtupAbort.cpp	Tue Apr  5 09:37:39 2005
@@ -141,15 +141,29 @@
   {
     ndbout_c("abort grow");
     Var_page *pageP= (Var_page*)page.p;
-    Uint32 idx= regOperPtr.p->m_tuple_location.m_page_idx;
-    Uint32 len= pageP->get_entry_len(idx) & ~Var_page::CHAIN;
-    Uint32 fix_size= regTabPtr.p->m_offsets[MM].m_fix_header_size;
+    Uint32 idx= regOperPtr.p->m_tuple_location.m_page_idx, sz;
     Uint32 mm_vars= regTabPtr.p->m_attributes[MM].m_no_of_varsize;
-    
-    Uint32 *var_part= tuple_ptr->get_var_part_ptr(regTabPtr.p);
-    Uint32 sz= Tuple_header::HeaderSize + fix_size +
-      ((((mm_vars + 1) << 1) + (((Uint16*)var_part)[mm_vars]) + 3)>> 2);
-    
+    Uint32 *var_part;
+    if(! (tuple_ptr->m_header_bits & Tuple_header::CHAINED_ROW))
+    {
+      var_part= tuple_ptr->get_var_part_ptr(regTabPtr.p);
+      sz= Tuple_header::HeaderSize + 
+	regTabPtr.p->m_offsets[MM].m_fix_header_size;
+    }
+    else
+    {
+      Ptr<Var_page> vpage;
+      Uint32 ref= * tuple_ptr->get_var_part_ptr(regTabPtr.p);
+      Local_key tmp; 
+      tmp=ref; 
+
+      sz= 0;
+      idx= tmp.m_page_idx;
+      var_part= get_ptr(&vpage, *(Var_part_ref*)&ref);
+      pageP= vpage.p;
+    }
+    Uint32 len= pageP->get_entry_len(idx) & ~Var_page::CHAIN;
+    sz += ((((mm_vars + 1) << 1) + (((Uint16*)var_part)[mm_vars]) + 3)>> 2);
     ndbassert(sz <= len);
     pageP->shrink_entry(idx, sz);
     update_free_page_list(regFragPtr.p, pageP);

--- 1.44/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp	Tue Apr  5 08:57:51 2005
+++ 1.45/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp	Tue Apr  5 09:37:39 2005
@@ -51,6 +51,7 @@
 
   PagePtr pagePtr;
   Tuple_header* ptr= (Tuple_header*)get_ptr(&pagePtr, &tmp, regTabPtr.p);
+  
   if (ptr->m_header_bits & Tuple_header::DISK_PART)
   {
     Uint32 dummy, gci, userpointer= signal->theData[4];
@@ -336,41 +337,6 @@
   if (regTabPtr->checksumIndicator) {
     jam();
     setChecksum(tuple_ptr, regTabPtr);
-  }
-
-  if(regTabPtr->m_attributes[MM].m_no_of_varsize)
-  {
-    Var_page* pageP= (Var_page*)page;
-loop:
-    for(Uint32 i = 1; i < pageP->high_index; i++)
-    {
-      Uint32 len= pageP->get_entry_len(i);
-      if(len > 0 && !(len & Var_page::CHAIN))
-      {
-	Tuple_header* tmp= (Tuple_header*)pageP->get_ptr(i);
-	if(tmp->m_operation_ptr_i != RNIL)
-	{
-	  if(tmp->m_operation_ptr_i > c_operation_pool.getSize())
-	  {
-	    ndbout << "FAILED " << i << endl << *pageP << endl;
-	  }
-	  c_operation_pool.getPtr(tmp->m_operation_ptr_i);
-	}
-	if(tmp->m_header_bits & Tuple_header::CHAINED_ROW)
-	  get_ptr(* (Var_part_ref*)tmp->get_var_part_ptr(regTabPtr));
-      }
-    }
-    
-#if 0
-    if(false && regOperPtr->op_struct.op_type != ZREAD && 
-       req_struct->m_varpart_page_ptr_p != pageP &&
-       req_struct->m_varpart_page_ptr_p != 0)
-    {
-      ndbout_c("verifying extra page");
-      pageP= req_struct->m_varpart_page_ptr_p;
-      goto loop;
-    }
-#endif
   }
 }
 

--- 1.58/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp	Tue Apr  5 08:57:51 2005
+++ 1.59/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp	Tue Apr  5 09:37:39 2005
@@ -1029,50 +1029,6 @@
   
   EXECUTE_DIRECT(DBLQH, GSN_TUPKEYCONF, signal,
 		 TupKeyConf::SignalLength);
-  
-  Uint32 RnoOfFragrec= cnoOfFragrec;
-  Uint32 RnoOfTablerec= cnoOfTablerec;
-  
-  jamEntry();
-  fragptr.i= regOperPtr->fragmentPtr;
-  ptrAss(fragptr, fragrecord);
-  Fragrecord * regFragPtr= fragptr.p;
-  
-  tabptr.i = regFragPtr->fragTableId;
-  ptrAss(tabptr, tablerec);
-  Tablerec* regTabPtr = tabptr.p;
-  
-  if(regTabPtr->m_attributes[MM].m_no_of_varsize)
-  {
-    PagePtr tmp;
-    tmp.i= regOperPtr->m_tuple_location.m_page_no;
-    ptrCheckGuard(tmp, cnoOfPage, page);
-    Var_page* pageP= (Var_page*)tmp.p;
-loop:
-    for(Uint32 i = 1; i < pageP->high_index; i++)
-    {
-      Uint32 len= pageP->get_entry_len(i);
-      if(len > 0 && !(len & Var_page::CHAIN))
-      {
-	Tuple_header* tmp= (Tuple_header*)pageP->get_ptr(i);
-	if(tmp->m_operation_ptr_i != RNIL)
-	{
-	  c_operation_pool.getPtr(tmp->m_operation_ptr_i);
-	}
-	if(tmp->m_header_bits & Tuple_header::CHAINED_ROW)
-	  get_ptr(* (Var_part_ref*)tmp->get_var_part_ptr(regTabPtr));
-      }
-    }
-    
-    if(false && regOperPtr->op_struct.op_type != ZREAD && 
-       req_struct->m_varpart_page_ptr_p != pageP &&
-       req_struct->m_varpart_page_ptr_p != 0)
-    {
-      ndbout_c("verifying extra page");
-      pageP= req_struct->m_varpart_page_ptr_p;
-      goto loop;
-    }
-  }
 }
 
 
Thread
bk commit into 5.1-ndb tree (joreland:1.1817)jonas.oreland5 Apr