MySQL Lists are EOL. Please join:

List:Commits« Previous MessageNext Message »
From:pekka Date:June 8 2007 10:27am
Subject:bk commit into 5.1 tree (pekka:1.2529) BUG#28724
View as plain text  
Below is the list of changes that have just been committed into a local
5.1 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@stripped, 2007-06-08 12:27:52+02:00, pekka@stripped +3 -0
  ndb - bug#28724 for blobs, op flag to not set error on trans (fix, recommit)

  storage/ndb/include/ndbapi/NdbOperation.hpp@stripped, 2007-06-08 12:25:19+02:00, pekka@stripped +7 -0
    add NdbOperation option m_noErrorPropagation.
    If AO_IgnoreError and it are set then operation error does not set error code on transaction.
    Private, and used by NdbBlob.cpp only.

  storage/ndb/src/ndbapi/NdbBlob.cpp@stripped, 2007-06-08 12:25:19+02:00, pekka@stripped +3 -0
    add NdbOperation option m_noErrorPropagation.
    If AO_IgnoreError and it are set then operation error does not set error code on transaction.
    Private, and used by NdbBlob.cpp only.

  storage/ndb/src/ndbapi/NdbOperation.cpp@stripped, 2007-06-08 12:25:19+02:00, pekka@stripped +6 -2
    add NdbOperation option m_noErrorPropagation.
    If AO_IgnoreError and it are set then operation error does not set error code on transaction.
    Private, and used by NdbBlob.cpp only.

# 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:	ndb15.mysql.com
# Root:	/space/pekka/ndb/version/my51-bug28724

--- 1.44/storage/ndb/include/ndbapi/NdbOperation.hpp	2007-06-08 12:27:59 +02:00
+++ 1.45/storage/ndb/include/ndbapi/NdbOperation.hpp	2007-06-08 12:27:59 +02:00
@@ -1042,6 +1042,13 @@
    */
   Int8 m_abortOption;
 
+  /*
+   * For blob impl, option to not propagate error to trans level.
+   * Could be AO_IgnoreError variant if we want it public.
+   * Ignored unless AO_IgnoreError is also set.
+   */
+  Int8 m_noErrorPropagation;
+
   friend struct Ndb_free_list_t<NdbOperation>;
 };
 

--- 1.22/storage/ndb/src/ndbapi/NdbOperation.cpp	2007-06-08 12:27:59 +02:00
+++ 1.23/storage/ndb/src/ndbapi/NdbOperation.cpp	2007-06-08 12:27:59 +02:00
@@ -76,7 +76,8 @@
   m_keyInfoGSN(GSN_KEYINFO),
   m_attrInfoGSN(GSN_ATTRINFO),
   theBlobList(NULL),
-  m_abortOption(-1)
+  m_abortOption(-1),
+  m_noErrorPropagation(false)
 {
   theReceiver.init(NdbReceiver::NDB_OPERATION, this);
   theError.code = 0;
@@ -101,7 +102,8 @@
   theError.code = anErrorCode;
   theNdbCon->theErrorLine = theErrorLine;
   theNdbCon->theErrorOperation = this;
-  theNdbCon->setOperationErrorCode(anErrorCode);
+  if (!(m_abortOption == AO_IgnoreError && m_noErrorPropagation))
+    theNdbCon->setOperationErrorCode(anErrorCode);
 }
 
 /******************************************************************************
@@ -116,6 +118,7 @@
   theError.code = anErrorCode;
   theNdbCon->theErrorLine = theErrorLine;
   theNdbCon->theErrorOperation = this;
+  // ignore m_noErrorPropagation
   theNdbCon->setOperationErrorCodeAbort(anErrorCode);
 }
 
@@ -161,6 +164,7 @@
   theMagicNumber        = 0xABCDEF01;
   theBlobList = NULL;
   m_abortOption = -1;
+  m_noErrorPropagation = false;
   m_no_disk_flag = 1;
 
   tSignal = theNdb->getSignal();

--- 1.57/storage/ndb/src/ndbapi/NdbBlob.cpp	2007-06-08 12:27:59 +02:00
+++ 1.58/storage/ndb/src/ndbapi/NdbBlob.cpp	2007-06-08 12:27:59 +02:00
@@ -1261,6 +1261,7 @@
         DBUG_RETURN(-1);
       }
       tOp->m_abortOption= NdbOperation::AO_IgnoreError;
+      tOp->m_noErrorPropagation = true;
       n++;
     }
     DBUG_PRINT("info", ("bat=%u", bat));
@@ -1597,6 +1598,7 @@
       }
       if (isWriteOp()) {
         tOp->m_abortOption = NdbOperation::AO_IgnoreError;
+        tOp->m_noErrorPropagation = true;
       }
       theHeadInlineReadOp = tOp;
       // execute immediately
@@ -1643,6 +1645,7 @@
       }
       if (isWriteOp()) {
         tOp->m_abortOption = NdbOperation::AO_IgnoreError;
+        tOp->m_noErrorPropagation = true;
       }
       theHeadInlineReadOp = tOp;
       // execute immediately
Thread
bk commit into 5.1 tree (pekka:1.2529) BUG#28724pekka8 Jun