List:Internals« Previous MessageNext Message »
From:pekka Date:April 17 2005 9:32pm
Subject:bk commit into 5.1-ndb tree (pekka:1.1856)
View as plain text  
Below is the list of changes that have just been committed into a local
5.1-ndb repository of pekka. When pekka 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.1856 05/04/17 21:31:51 pekka@stripped +2 -0
  printSchemaFile.cpp, Dbdict.cpp:
    post merge fixes 5.0->5.1 for >1600 tables

  ndb/src/kernel/blocks/dbdict/printSchemaFile.cpp
    1.10 05/04/17 21:08:12 pekka@stripped +1 -1
    post merge fixes 5.0->5.1 for >1600 tables

  ndb/src/kernel/blocks/dbdict/Dbdict.cpp
    1.74 05/04/17 21:08:12 pekka@stripped +25 -28
    post merge fixes 5.0->5.1 for >1600 tables

# 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:	pekka
# Host:	tuna.ndb.mysql.com
# Root:	/orca/space/pekka/ndb/version/my51-dd

--- 1.73/ndb/src/kernel/blocks/dbdict/Dbdict.cpp	2005-04-17 19:08:28 +02:00
+++ 1.74/ndb/src/kernel/blocks/dbdict/Dbdict.cpp	2005-04-17 21:08:12 +02:00
@@ -1765,14 +1765,18 @@
  */
 Uint32 Dbdict::getFreeObjId(Uint32 minId)
 {
-  PageRecordPtr pagePtr;
-  c_pageRecordArray.getPtr(pagePtr, c_schemaRecord.schemaPage);
-  const SchemaFile* sf = (SchemaFile*)pagePtr.p;
-  for (Uint32 i = minId; i < sf->NoOfTableEntries; i++) {
-    const SchemaFile::TableEntry& te = sf->TableEntries[i];
-    if (te.m_tableState == (Uint32)SchemaFile::INIT ||
-        te.m_tableState == (Uint32)SchemaFile::DROP_TABLE_COMMITTED)
-      return i;
+  const XSchemaFile * xsf = &c_schemaFile[c_schemaRecord.schemaPage != 0];
+  Uint32 noOfPages = xsf->noOfPages;
+  Uint32 n, i;
+  for (n = 0; n < noOfPages; n++) {
+    jam();
+    const SchemaFile * sf = &xsf->schemaPage[n];
+    for (i = 0; i < NDB_SF_PAGE_ENTRIES; i++) {
+      const SchemaFile::TableEntry& te = sf->TableEntries[i];
+      if (te.m_tableState == (Uint32)SchemaFile::INIT ||
+          te.m_tableState == (Uint32)SchemaFile::DROP_TABLE_COMMITTED)
+        return i;
+    }
   }
   return RNIL;
 }
@@ -2885,10 +2889,9 @@
   handleTabInfoInit(r, &parseRecord);
   ndbrequire(parseRecord.errorCode == 0);
 
-  PageRecordPtr pageRecPtr;
-  c_pageRecordArray.getPtr(pageRecPtr, c_schemaRecord.schemaPage);
   ndbrequire(tableId < c_tableRecordPool.getSize());
-  SchemaFile::TableEntry * tableEntry = getTableEntry(pageRecPtr.p, tableId);
+  XSchemaFile * xsf = &c_schemaFile[c_schemaRecord.schemaPage != 0];
+  SchemaFile::TableEntry * tableEntry = getTableEntry(xsf, tableId);
   tableEntry->m_info_words= tabInfoPtr.sz;
   
   Callback callback;
@@ -6563,9 +6566,8 @@
 
   SchemaFile::TableEntry *objEntry = 0;
   if(obj_id != RNIL){
-    PageRecordPtr pagePtr;
-    c_pageRecordArray.getPtr(pagePtr, c_schemaRecord.schemaPage);
-    objEntry = getTableEntry(pagePtr.p, obj_id);      
+    XSchemaFile * xsf = &c_schemaFile[c_schemaRecord.schemaPage != 0];
+    objEntry = getTableEntry(xsf, obj_id);      
   }
 
   // The table seached for was not found
@@ -12663,9 +12665,8 @@
       ndbout_c("execCREATE_FILE_REQ objId = %d", objId);
       create_obj->gci = 0;
       
-      PageRecordPtr pagePtr;
-      c_pageRecordArray.getPtr(pagePtr, c_schemaRecord.schemaPage);
-      SchemaFile::TableEntry *objEntry = getTableEntry(pagePtr.p, objId);      
+      XSchemaFile * xsf = &c_schemaFile[c_schemaRecord.schemaPage != 0];
+      SchemaFile::TableEntry *objEntry = getTableEntry(xsf, objId);      
       create_obj->objVersion = objEntry->m_tableVersion + 1;
     }
     
@@ -12764,9 +12765,8 @@
       ndbout_c("execCREATE_FILEGROUP_REQ objId = %d", objId);
       create_obj->gci = 0;
       
-      PageRecordPtr pagePtr;
-      c_pageRecordArray.getPtr(pagePtr, c_schemaRecord.schemaPage);
-      SchemaFile::TableEntry *objEntry = getTableEntry(pagePtr.p, objId);      
+      XSchemaFile * xsf = &c_schemaFile[c_schemaRecord.schemaPage != 0];
+      SchemaFile::TableEntry *objEntry = getTableEntry(xsf, objId);      
       create_obj->objVersion = objEntry->m_tableVersion + 1;
     }
     
@@ -13195,11 +13195,9 @@
   CreateObjRecordPtr createObjPtr;  
   ndbrequire(c_opCreateObj.find(createObjPtr, callbackData));
   
-  PageRecordPtr pagePtr;
-  c_pageRecordArray.getPtr(pagePtr, c_schemaRecord.schemaPage);
-  
   Uint32 objId = createObjPtr.p->m_obj_id;
-  SchemaFile::TableEntry objEntry = * getTableEntry(pagePtr.p, objId);
+  XSchemaFile * xsf = &c_schemaFile[c_schemaRecord.schemaPage != 0];
+  SchemaFile::TableEntry objEntry = * getTableEntry(xsf, objId);
   objEntry.m_tableState = SchemaFile::TABLE_ADD_COMMITTED;
   
   Callback callback;
@@ -13284,10 +13282,9 @@
   
   releaseObjObject(objPtr.i);
 #endif
-  PageRecordPtr pagePtr;
-  c_pageRecordArray.getPtr(pagePtr, c_schemaRecord.schemaPage);
-  SchemaFile::TableEntry * tableEntry = getTableEntry(pagePtr.p, 
-						      createObjPtr.p->m_obj_id);
+  XSchemaFile * xsf = &c_schemaFile[c_schemaRecord.schemaPage != 0];
+  SchemaFile::TableEntry * tableEntry =
+    getTableEntry(xsf, createObjPtr.p->m_obj_id);
   tableEntry->m_tableState = SchemaFile::DROP_TABLE_COMMITTED;
   
   //@todo check error

--- 1.9/ndb/src/kernel/blocks/dbdict/printSchemaFile.cpp	2005-04-17 19:02:31 +02:00
+++ 1.10/ndb/src/kernel/blocks/dbdict/printSchemaFile.cpp	2005-04-17 21:08:12 +02:00
@@ -87,7 +87,7 @@
              << " State = " << te.m_tableState 
 	     << " version = " << te.m_tableVersion
              << " type = " << te.m_tableType
-	     << " noOfWords = " << te.m_info_words
+	     << " noOfPages = " << te.m_noOfPages
 	     << " gcp: " << te.m_gcp << endl;
     }
   }
Thread
bk commit into 5.1-ndb tree (pekka:1.1856)pekka17 Apr