List:Commits« Previous MessageNext Message »
From:jonas Date:February 6 2008 8:12pm
Subject:bk commit into 5.1 tree (jonas:1.2849)
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@stripped, 2008-02-06 21:12:35+01:00, jonas@stripped +2 -0
  ndb - wl3600 [ 9 / 11 ]
  
  Parse
  
  This patch makes it explicit if parse is called on master/participant
  by adding an extra argument to OpInfo::parse(bool master)
  
  This removes need for parse-implementations to look at trans_ptr.p->m_isMaster
  
  ---
   storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp |   93 ++++++++++++++++--------
   storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp |   30 +++++--
   2 files changed, 83 insertions(+), 40 deletions(-)

  storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp@stripped, 2008-02-06 21:12:33+01:00, jonas@stripped +63 -30
    Parse
    
    This patch makes it explicit if parse is called on master/participant
    by adding an extra argument to OpInfo::parse(bool master)
    
    This removes need for parse-implementations to look at trans_ptr.p->m_isMaster

  storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp@stripped, 2008-02-06 21:12:33+01:00, jonas@stripped +20 -10
    Parse
    
    This patch makes it explicit if parse is called on master/participant
    by adding an extra argument to OpInfo::parse(bool master)
    
    This removes need for parse-implementations to look at trans_ptr.p->m_isMaster

diff -Nrup a/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp b/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp
--- a/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp	2008-02-06 21:11:29 +01:00
+++ b/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp	2008-02-06 21:12:33 +01:00
@@ -4984,7 +4984,8 @@ Dbdict::execCREATE_TABLE_REQ(Signal* sig
 // CreateTable: PARSE
 
 void
-Dbdict::createTable_parse(Signal* signal, SchemaOpPtr op_ptr,
+Dbdict::createTable_parse(Signal* signal, bool master,
+                          SchemaOpPtr op_ptr,
                           SectionHandle& handle, ErrorInfo& error)
 {
   D("createTable_parse");
@@ -5007,7 +5008,8 @@ Dbdict::createTable_parse(Signal* signal
    * The new DictTabInfo (sec 0) and the fragmentation (sec 1) are
    * sent to all participants when master parse returns.
    */
-  if (trans_ptr.p->m_isMaster) {
+  if (master)
+  {
     jam();
 
     // parse client DictTabInfo into new TableRecord
@@ -5158,7 +5160,8 @@ Dbdict::createTable_parse(Signal* signal
   }
 
   // wl3600_todo parse the rewritten DictTabInfo in master too
-  if (!trans_ptr.p->m_isMaster) {
+  if (!master)
+  {
     jam();
     createTabPtr.p->m_request.tableId = tableId;
 
@@ -5171,7 +5174,8 @@ Dbdict::createTable_parse(Signal* signal
     bool checkExist = true;
     handleTabInfoInit(r, &parseRecord, checkExist);
 
-    if (parseRecord.errorCode != 0) {
+    if (parseRecord.errorCode != 0)
+    {
       jam();
       setError(error, parseRecord);
       return;
@@ -5229,8 +5233,8 @@ Dbdict::createTable_parse(Signal* signal
   }
 
   D("createTable_parse: "
-      << copyRope<MAX_TAB_NAME_SIZE>(tabPtr.p->tableName)
-      << V(tabPtr.p->tableVersion));
+    << copyRope<MAX_TAB_NAME_SIZE>(tabPtr.p->tableName)
+    << V(tabPtr.p->tableVersion));
 }
 
 bool
@@ -6340,7 +6344,8 @@ Dbdict::execDROP_TABLE_REQ(Signal* signa
 // DropTable: PARSE
 
 void
-Dbdict::dropTable_parse(Signal* signal, SchemaOpPtr op_ptr,
+Dbdict::dropTable_parse(Signal* signal, bool master,
+                        SchemaOpPtr op_ptr,
                         SectionHandle& handle, ErrorInfo& error)
 {
   D("dropTable_parse" << V(op_ptr.i) << *op_ptr.p);
@@ -7160,7 +7165,8 @@ Dbdict::execALTER_TABLE_REQ(Signal* sign
 // AlterTable: PARSE
 
 void
-Dbdict::alterTable_parse(Signal* signal, SchemaOpPtr op_ptr,
+Dbdict::alterTable_parse(Signal* signal, bool master,
+                         SchemaOpPtr op_ptr,
                          SectionHandle& handle, ErrorInfo& error)
 {
   D("alterTable_parse");
@@ -7268,12 +7274,16 @@ Dbdict::alterTable_parse(Signal* signal,
       return;
     }
 
-    if (trans_ptr.p->m_isMaster) {
+    if (master)
+    {
       jam();
       impl_req->noOfNewAttr = noOfNewAttr;
       impl_req->newNoOfCharsets = newTablePtr.p->noOfCharsets;
       impl_req->newNoOfKeyAttrs = newTablePtr.p->noOfPrimkey;
-    } else {
+    }
+    else
+    {
+      jam();
       ndbrequire(impl_req->noOfNewAttr == noOfNewAttr);
     }
 
@@ -7310,7 +7320,8 @@ Dbdict::alterTable_parse(Signal* signal,
   }
 
   // master rewrites DictTabInfo (it is re-parsed only on slaves)
-  if (trans_ptr.p->m_isMaster) {
+  if (master)
+  {
     jam();
     releaseSections(handle);
     SimplePropertiesSectionWriter w(getSectionSegmentPool());
@@ -8637,7 +8648,8 @@ Dbdict::execCREATE_INDX_REQ(Signal* sign
 // CreateIndex: PARSE
 
 void
-Dbdict::createIndex_parse(Signal* signal, SchemaOpPtr op_ptr,
+Dbdict::createIndex_parse(Signal* signal, bool master,
+                          SchemaOpPtr op_ptr,
                           SectionHandle& handle, ErrorInfo& error)
 {
   D("createIndex_parse");
@@ -9338,7 +9350,8 @@ Dbdict::execDROP_INDX_REQ(Signal* signal
 // DropIndex: PARSE
 
 void
-Dbdict::dropIndex_parse(Signal* signal, SchemaOpPtr op_ptr,
+Dbdict::dropIndex_parse(Signal* signal, bool master,
+                        SchemaOpPtr op_ptr,
                         SectionHandle& handle, ErrorInfo& error)
 {
   D("dropIndex_parse" << V(op_ptr.i) << *op_ptr.p);
@@ -9386,16 +9399,22 @@ Dbdict::dropIndex_parse(Signal* signal, 
   c_tableRecordPool.getPtr(tablePtr, indexPtr.p->primaryTableId);
 
   // master sets primary table, slave verifies it agrees
-  if (reference() == impl_req->senderRef) {
+  if (master)
+  {
+    jam();
     impl_req->tableId = tablePtr.p->tableId;
     impl_req->tableVersion = tablePtr.p->tableVersion;
-  } else {
-    if (impl_req->tableId != tablePtr.p->tableId) {
+  }
+  else
+  {
+    if (impl_req->tableId != tablePtr.p->tableId)
+    {
       jam(); // wl3600_todo better error code
       setError(error, DropIndxRef::InvalidIndexVersion, __LINE__);
       return;
     }
-    if (impl_req->tableVersion != tablePtr.p->tableVersion) {
+    if (impl_req->tableVersion != tablePtr.p->tableVersion)
+    {
       jam(); // wl3600_todo better error code
       setError(error, DropIndxRef::InvalidIndexVersion, __LINE__);
       return;
@@ -9797,7 +9816,8 @@ Dbdict::g_buildIndexConstraintTmpl[1] = 
 // AlterIndex: PARSE
 
 void
-Dbdict::alterIndex_parse(Signal* signal, SchemaOpPtr op_ptr,
+Dbdict::alterIndex_parse(Signal* signal, bool master,
+                         SchemaOpPtr op_ptr,
                          SectionHandle& handle, ErrorInfo& error)
 {
   D("alterIndex_parse" << V(op_ptr.i) << *op_ptr.p);
@@ -9838,9 +9858,13 @@ Dbdict::alterIndex_parse(Signal* signal,
     return;
   }
 
-  if (trans_ptr.p->m_isMaster) {
+  if (master)
+  {
+    jam();
     impl_req->indexType = indexPtr.p->tableType;
-  } else {
+  }
+  else
+  {
     jam();
     ndbrequire(impl_req->indexType == (Uint32)indexPtr.p->tableType);
   }
@@ -9856,16 +9880,22 @@ Dbdict::alterIndex_parse(Signal* signal,
   c_tableRecordPool.getPtr(tablePtr, indexPtr.p->primaryTableId);
 
   // master sets primary table, participant verifies it agrees
-  if (trans_ptr.p->m_isMaster) {
+  if (master)
+  {
+    jam();
     impl_req->tableId = tablePtr.p->tableId;
     impl_req->tableVersion = tablePtr.p->tableVersion;
-  } else {
-    if (impl_req->tableId != tablePtr.p->tableId) {
+  }
+  else
+  {
+    if (impl_req->tableId != tablePtr.p->tableId)
+    {
       jam(); // wl3600_todo better error code
       setError(error, AlterIndxRef::InvalidIndexVersion, __LINE__);
       return;
     }
-    if (impl_req->tableVersion != tablePtr.p->tableVersion) {
+    if (impl_req->tableVersion != tablePtr.p->tableVersion)
+    {
       jam(); // wl3600_todo better error code
       setError(error, AlterIndxRef::InvalidIndexVersion, __LINE__);
       return;
@@ -10646,7 +10676,8 @@ Dbdict::execBUILDINDXREQ(Signal* signal)
 // BuildIndex: PARSE
 
 void
-Dbdict::buildIndex_parse(Signal* signal, SchemaOpPtr op_ptr,
+Dbdict::buildIndex_parse(Signal* signal, bool master,
+                         SchemaOpPtr op_ptr,
                          SectionHandle& handle, ErrorInfo& error)
 {
   D("buildIndex_parse");
@@ -13701,7 +13732,8 @@ Dbdict::execCREATE_TRIG_REQ(Signal* sign
 // CreateTrigger: PARSE
 
 void
-Dbdict::createTrigger_parse(Signal* signal, SchemaOpPtr op_ptr,
+Dbdict::createTrigger_parse(Signal* signal, bool master,
+                            SchemaOpPtr op_ptr,
                             SectionHandle& handle, ErrorInfo& error)
 {
   D("createTrigger_parse" << V(op_ptr.i) << *op_ptr.p);
@@ -13800,7 +13832,7 @@ Dbdict::createTrigger_parse(Signal* sign
   }
 
   TriggerRecordPtr triggerPtr;
-  if (trans_ptr.p->m_isMaster)
+  if (master)
   {
     jam();
     if (impl_req->triggerId == RNIL)
@@ -14444,7 +14476,8 @@ Dbdict::execDROP_TRIG_REQ(Signal* signal
 // DropTrigger: PARSE
 
 void
-Dbdict::dropTrigger_parse(Signal* signal, SchemaOpPtr op_ptr,
+Dbdict::dropTrigger_parse(Signal* signal, bool master,
+                          SchemaOpPtr op_ptr,
                           SectionHandle& handle, ErrorInfo& error)
 {
   D("dropTrigger_parse" << V(op_ptr.i) << *op_ptr.p);
@@ -19359,7 +19392,7 @@ Dbdict::handleClientReq(Signal* signal, 
 
   ErrorInfo error;
   const OpInfo& info = getOpInfo(op_ptr);
-  (this->*(info.m_parse))(signal, op_ptr, handle, error);
+  (this->*(info.m_parse))(signal, true, op_ptr, handle, error);
 
   if (hasError(error)) {
     jam();
@@ -20178,7 +20211,7 @@ Dbdict::recvTransParseReq(Signal* signal
       Uint32* dst = oprec_ptr.p->m_impl_req_data;
       memcpy(dst, src, len << 2);
 
-      (this->*(info.m_parse))(signal, op_ptr, handle, error);
+      (this->*(info.m_parse))(signal, false, op_ptr, handle, error);
       if (!hasError(error)) {
         jam();
         updateSchemaOpStep(trans_ptr, op_ptr);
diff -Nrup a/storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp b/storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp
--- a/storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp	2008-02-06 21:10:05 +01:00
+++ b/storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp	2008-02-06 21:12:33 +01:00
@@ -1315,7 +1315,8 @@ private:
     void (Dbdict::*m_release)(SchemaOpPtr);
 
     // parse phase
-    void (Dbdict::*m_parse)(Signal*, SchemaOpPtr, SectionHandle&, ErrorInfo&);
+    void (Dbdict::*m_parse)(Signal*, bool master,
+                            SchemaOpPtr, SectionHandle&, ErrorInfo&);
     bool (Dbdict::*m_subOps)(Signal*, SchemaOpPtr);
     void (Dbdict::*m_reply)(Signal*, SchemaOpPtr, ErrorInfo);
 
@@ -2182,7 +2183,8 @@ private:
   bool createTable_seize(SchemaOpPtr);
   void createTable_release(SchemaOpPtr);
   //
-  void createTable_parse(Signal*, SchemaOpPtr, SectionHandle&, ErrorInfo&);
+  void createTable_parse(Signal*, bool master,
+                         SchemaOpPtr, SectionHandle&, ErrorInfo&);
   bool createTable_subOps(Signal*, SchemaOpPtr);
   void createTable_reply(Signal*, SchemaOpPtr, ErrorInfo);
   //
@@ -2243,7 +2245,8 @@ private:
   bool dropTable_seize(SchemaOpPtr);
   void dropTable_release(SchemaOpPtr);
   //
-  void dropTable_parse(Signal*, SchemaOpPtr, SectionHandle&, ErrorInfo&);
+  void dropTable_parse(Signal*, bool master,
+                       SchemaOpPtr, SectionHandle&, ErrorInfo&);
   bool dropTable_subOps(Signal*, SchemaOpPtr);
   void dropTable_reply(Signal*, SchemaOpPtr, ErrorInfo);
   //
@@ -2331,7 +2334,8 @@ private:
   bool alterTable_seize(SchemaOpPtr);
   void alterTable_release(SchemaOpPtr);
   //
-  void alterTable_parse(Signal*, SchemaOpPtr, SectionHandle&, ErrorInfo&);
+  void alterTable_parse(Signal*, bool master,
+                        SchemaOpPtr, SectionHandle&, ErrorInfo&);
   bool alterTable_subOps(Signal*, SchemaOpPtr);
   void alterTable_reply(Signal*, SchemaOpPtr, ErrorInfo);
   //
@@ -2411,7 +2415,8 @@ private:
   bool createIndex_seize(SchemaOpPtr);
   void createIndex_release(SchemaOpPtr);
   //
-  void createIndex_parse(Signal*, SchemaOpPtr, SectionHandle&, ErrorInfo&);
+  void createIndex_parse(Signal*, bool master,
+                         SchemaOpPtr, SectionHandle&, ErrorInfo&);
   bool createIndex_subOps(Signal*, SchemaOpPtr);
   void createIndex_reply(Signal*, SchemaOpPtr, ErrorInfo);
   //
@@ -2462,7 +2467,8 @@ private:
   bool dropIndex_seize(SchemaOpPtr);
   void dropIndex_release(SchemaOpPtr);
   //
-  void dropIndex_parse(Signal*, SchemaOpPtr, SectionHandle&, ErrorInfo&);
+  void dropIndex_parse(Signal*, bool master,
+                       SchemaOpPtr, SectionHandle&, ErrorInfo&);
   bool dropIndex_subOps(Signal*, SchemaOpPtr);
   void dropIndex_reply(Signal*, SchemaOpPtr, ErrorInfo);
   //
@@ -2533,7 +2539,8 @@ private:
   bool alterIndex_seize(SchemaOpPtr);
   void alterIndex_release(SchemaOpPtr);
   //
-  void alterIndex_parse(Signal*, SchemaOpPtr, SectionHandle&, ErrorInfo&);
+  void alterIndex_parse(Signal*, bool master,
+                        SchemaOpPtr, SectionHandle&, ErrorInfo&);
   bool alterIndex_subOps(Signal*, SchemaOpPtr);
   void alterIndex_reply(Signal*, SchemaOpPtr, ErrorInfo);
   //
@@ -2608,7 +2615,8 @@ private:
   bool buildIndex_seize(SchemaOpPtr);
   void buildIndex_release(SchemaOpPtr);
   //
-  void buildIndex_parse(Signal*, SchemaOpPtr, SectionHandle&, ErrorInfo&);
+  void buildIndex_parse(Signal*, bool master,
+                        SchemaOpPtr, SectionHandle&, ErrorInfo&);
   bool buildIndex_subOps(Signal*, SchemaOpPtr);
   void buildIndex_reply(Signal*, SchemaOpPtr, ErrorInfo);
   //
@@ -2790,7 +2798,8 @@ private:
   bool createTrigger_seize(SchemaOpPtr);
   void createTrigger_release(SchemaOpPtr);
   //
-  void createTrigger_parse(Signal*, SchemaOpPtr, SectionHandle&, ErrorInfo&);
+  void createTrigger_parse(Signal*, bool master,
+                           SchemaOpPtr, SectionHandle&, ErrorInfo&);
   void createTrigger_parse_endpoint(Signal*, SchemaOpPtr op_ptr, ErrorInfo&);
   bool createTrigger_subOps(Signal*, SchemaOpPtr);
   void createTrigger_toCreateEndpoint(Signal*, SchemaOpPtr,
@@ -2845,7 +2854,8 @@ private:
   bool dropTrigger_seize(SchemaOpPtr);
   void dropTrigger_release(SchemaOpPtr);
   //
-  void dropTrigger_parse(Signal*, SchemaOpPtr, SectionHandle&, ErrorInfo&);
+  void dropTrigger_parse(Signal*, bool master,
+                         SchemaOpPtr, SectionHandle&, ErrorInfo&);
   void dropTrigger_parse_endpoint(Signal*, SchemaOpPtr op_ptr, ErrorInfo&);
   bool dropTrigger_subOps(Signal*, SchemaOpPtr);
   void dropTrigger_toDropEndpoint(Signal*, SchemaOpPtr,
Thread
bk commit into 5.1 tree (jonas:1.2849)jonas6 Feb