List:Commits« Previous MessageNext Message »
From:Mats Kindahl Date:July 11 2006 9:15am
Subject:bk commit into 5.0 tree (mkindahl:1.2206)
View as plain text  
Below is the list of changes that have just been committed into a local
5.0 repository of mkindahl. When mkindahl 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@stripped, 2006-07-11 11:15:22+02:00, mkindahl@stripped +5 -0
  Merge dl145k.mysql.com:/data0/mkindahl/bkroot/mysql-5.0-rpl
  into  dl145k.mysql.com:/data0/mkindahl/bk/MERGE/mysql-5.0-merge
  MERGE: 1.2167.1.4

  ndb/include/kernel/GlobalSignalNumbers.h@stripped, 2006-07-11 11:15:16+02:00, mkindahl@stripped +0 -0
    Auto merged
    MERGE: 1.10.1.2

  ndb/src/kernel/blocks/dbdict/Dbdict.cpp@stripped, 2006-07-11 11:15:16+02:00, mkindahl@stripped +0 -0
    Auto merged
    MERGE: 1.61.1.1

  ndb/src/kernel/blocks/dbdict/Dbdict.hpp@stripped, 2006-07-11 11:15:16+02:00, mkindahl@stripped +0 -0
    Auto merged
    MERGE: 1.16.1.1

  ndb/src/kernel/blocks/dbdih/DbdihMain.cpp@stripped, 2006-07-11 11:15:16+02:00, mkindahl@stripped +0 -0
    Auto merged
    MERGE: 1.49.1.1

  ndb/src/ndbapi/ndberror.c@stripped, 2006-07-11 11:15:16+02:00, mkindahl@stripped +0 -0
    Auto merged
    MERGE: 1.43.1.4

# 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:	mkindahl
# Host:	dl145k.mysql.com
# Root:	/data0/mkindahl/bk/MERGE/mysql-5.0-merge/RESYNC

--- 1.12/ndb/include/kernel/GlobalSignalNumbers.h	2006-07-11 11:15:28 +02:00
+++ 1.13/ndb/include/kernel/GlobalSignalNumbers.h	2006-07-11 11:15:28 +02:00
@@ -608,8 +608,6 @@
 #define GSN_WAIT_GCP_REF                500
 #define GSN_WAIT_GCP_CONF               501
 
-/* 502 not used */
-
 /**
  * Trigger and index signals
  */
@@ -679,6 +677,8 @@
 #define GSN_BACKUP_FRAGMENT_REF         546
 #define GSN_BACKUP_FRAGMENT_CONF        547
 
+#define GSN_BACKUP_FRAGMENT_COMPLETE_REP 575
+
 #define GSN_STOP_BACKUP_REQ             548
 #define GSN_STOP_BACKUP_REF             549
 #define GSN_STOP_BACKUP_CONF            550
@@ -728,7 +728,7 @@
 #define GSN_SUB_STOP_REQ                572
 #define GSN_SUB_STOP_REF                573
 #define GSN_SUB_STOP_CONF               574
-/*                                      575 unused */
+/*                                      575 used */
 #define GSN_SUB_CREATE_REQ              576
 #define GSN_SUB_CREATE_REF              577
 #define GSN_SUB_CREATE_CONF             578

--- 1.63/ndb/src/kernel/blocks/dbdict/Dbdict.cpp	2006-07-11 11:15:28 +02:00
+++ 1.64/ndb/src/kernel/blocks/dbdict/Dbdict.cpp	2006-07-11 11:15:28 +02:00
@@ -286,6 +286,10 @@
   w.add(DictTabInfo::TableKValue, tablePtr.p->kValue);
   w.add(DictTabInfo::FragmentTypeVal, tablePtr.p->fragmentType);
   w.add(DictTabInfo::TableTypeVal, tablePtr.p->tableType);
+  w.add(DictTabInfo::MaxRowsLow, tablePtr.p->maxRowsLow);
+  w.add(DictTabInfo::MaxRowsHigh, tablePtr.p->maxRowsHigh);
+  w.add(DictTabInfo::MinRowsLow, tablePtr.p->minRowsLow);
+  w.add(DictTabInfo::MinRowsHigh, tablePtr.p->minRowsHigh);
   
   if(!signal)
   {
@@ -1535,6 +1539,10 @@
   tablePtr.p->minLoadFactor = 70;
   tablePtr.p->noOfPrimkey = 1;
   tablePtr.p->tupKeyLength = 1;
+  tablePtr.p->maxRowsLow = 0;
+  tablePtr.p->maxRowsHigh = 0;
+  tablePtr.p->minRowsLow = 0;
+  tablePtr.p->minRowsHigh = 0;
   tablePtr.p->storedTable = true;
   tablePtr.p->tableType = DictTabInfo::UserTable;
   tablePtr.p->primaryTableId = RNIL;
@@ -4501,6 +4509,13 @@
   Uint32 lhPageBits = 0;
   ::calcLHbits(&lhPageBits, &lhDistrBits, fragId, fragCount);
 
+  Uint64 maxRows = tabPtr.p->maxRowsLow +
+    (((Uint64)tabPtr.p->maxRowsHigh) << 32);
+  Uint64 minRows = tabPtr.p->minRowsLow +
+    (((Uint64)tabPtr.p->minRowsHigh) << 32);
+  maxRows = (maxRows + fragCount - 1) / fragCount;
+  minRows = (minRows + fragCount - 1) / fragCount;
+
   {  
     LqhFragReq* req = (LqhFragReq*)signal->getDataPtrSend();
     req->senderData = senderData;
@@ -4516,7 +4531,10 @@
     req->lh3PageBits = 0; //lhPageBits;
     req->noOfAttributes = tabPtr.p->noOfAttributes;
     req->noOfNullAttributes = tabPtr.p->noOfNullBits;
-    req->noOfPagesToPreAllocate = 0;
+    req->maxRowsLow = maxRows & 0xFFFFFFFF;
+    req->maxRowsHigh = maxRows >> 32;
+    req->minRowsLow = minRows & 0xFFFFFFFF;
+    req->minRowsHigh = minRows >> 32;
     req->schemaVersion = tabPtr.p->tableVersion;
     Uint32 keyLen = tabPtr.p->tupKeyLength;
     req->keyLength = keyLen; // wl-2066 no more "long keys"
@@ -4524,8 +4542,7 @@
 
     req->noOfKeyAttr = tabPtr.p->noOfPrimkey;
     req->noOfNewAttr = 0;
-    // noOfCharsets passed to TUP in upper half
-    req->noOfNewAttr |= (tabPtr.p->noOfCharsets << 16);
+    req->noOfCharsets = tabPtr.p->noOfCharsets;
     req->checksumIndicator = 1;
     req->noOfAttributeGroups = 1;
     req->GCPIndicator = 0;
@@ -5091,6 +5108,15 @@
   tablePtr.p->tableType = (DictTabInfo::TableType)tableDesc.TableType;
   tablePtr.p->kValue = tableDesc.TableKValue;
   tablePtr.p->fragmentCount = tableDesc.FragmentCount;
+  tablePtr.p->maxRowsLow = tableDesc.MaxRowsLow;
+  tablePtr.p->maxRowsHigh = tableDesc.MaxRowsHigh;
+  tablePtr.p->minRowsLow = tableDesc.MinRowsLow;
+  tablePtr.p->minRowsHigh = tableDesc.MinRowsHigh;
+
+  Uint64 maxRows =
+    (((Uint64)tablePtr.p->maxRowsHigh) << 32) + tablePtr.p->maxRowsLow;
+  Uint64 minRows =
+    (((Uint64)tablePtr.p->minRowsHigh) << 32) + tablePtr.p->minRowsLow;
 
   tablePtr.p->frmLen = tableDesc.FrmLen;
   memcpy(tablePtr.p->frmData, tableDesc.FrmData, tableDesc.FrmLen);  

--- 1.18/ndb/src/kernel/blocks/dbdict/Dbdict.hpp	2006-07-11 11:15:28 +02:00
+++ 1.19/ndb/src/kernel/blocks/dbdict/Dbdict.hpp	2006-07-11 11:15:28 +02:00
@@ -134,6 +134,10 @@
    * on disk.  Index trigger ids are volatile.
    */
   struct TableRecord : public MetaData::Table {
+    Uint32 maxRowsLow;
+    Uint32 maxRowsHigh;
+    Uint32 minRowsLow;
+    Uint32 minRowsHigh;
     /****************************************************
      *    Support variables for table handling
      ****************************************************/

--- 1.52/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp	2006-07-11 11:15:29 +02:00
+++ 1.53/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp	2006-07-11 11:15:29 +02:00
@@ -8406,7 +8406,7 @@
 	     *--------_----------------------------------------------------- */
 	    const Uint32 nextCrashed = noCrashedReplicas + 1;
 	    replicaPtr.p->noCrashedReplicas = nextCrashed;
-	    arrGuard(nextCrashed, 8);
+	    arrGuardErr(nextCrashed, 8, NDBD_EXIT_MAX_CRASHED_REPLICAS);
 	    replicaPtr.p->createGci[nextCrashed] = newestRestorableGCI + 1;
 	    ndbrequire(newestRestorableGCI + 1 != 0xF1F1F1F1);
 	    replicaPtr.p->replicaLastGci[nextCrashed] = (Uint32)-1;

--- 1.44/ndb/src/ndbapi/ndberror.c	2006-07-11 11:15:29 +02:00
+++ 1.45/ndb/src/ndbapi/ndberror.c	2006-07-11 11:15:29 +02:00
@@ -266,6 +266,7 @@
   /**
    * Application error
    */
+  { 763,  AE, "Alter table requires cluster nodes to have exact same version" },
   { 823,  AE, "Too much attrinfo from application in tuple manager" },
   { 831,  AE, "Too many nullable/bitfields in table definition" },
   { 876,  AE, "876" },
@@ -290,7 +291,7 @@
   { 4601, AE, "Transaction is not started"},
   { 4602, AE, "You must call getNdbOperation before executeScan" },
   { 4603, AE, "There can only be ONE operation in a scan transaction" },
-  { 4604, AE, "takeOverScanOp, opType must be UpdateRequest or DeleteRequest" },
+  { 4604, AE, "takeOverScanOp, to take over a scanned row one must explicitly request keyinfo in readTuples call" },
   { 4605, AE, "You may only call openScanRead or openScanExclusive once for each operation"},
   { 4607, AE, "There may only be one operation in a scan transaction"},
   { 4608, AE, "You can not takeOverScan unless you have used openScanExclusive"},
@@ -514,14 +515,15 @@
   { 4262, UD, "NdbScanFilter: Condition is out of bounds"},
   { 4263, IE, "Invalid blob attributes or invalid blob parts table" },
   { 4264, AE, "Invalid usage of blob attribute" },
-  { 4265, AE, "Method is not valid in current blob state" },
+  { 4265, AE, "The blob method is not valid in current blob state" },
   { 4266, AE, "Invalid blob seek position" },
   { 4267, IE, "Corrupted blob value" },
   { 4268, IE, "Error in blob head update forced rollback of transaction" },
   { 4269, IE, "No connection to ndb management server" },
   { 4270, IE, "Unknown blob error" },
   { 4335, AE, "Only one autoincrement column allowed per table. Having a table without primary key uses an autoincremented hidden key, i.e. a table without a primary key can not have an autoincremented column" },
-  { 4271, AE, "Invalid index object, not retrieved via getIndex()" }
+  { 4271, AE, "Invalid index object, not retrieved via getIndex()" },
+  { 4275, AE, "The blob method is incompatible with operation type or lock mode" }
 };
 
 static
Thread
bk commit into 5.0 tree (mkindahl:1.2206)Mats Kindahl11 Jul