Commit f5df855f authored by unknown's avatar unknown
Browse files

Merge mysql.com:/home/stewart/Documents/MySQL/4.1/main

into  mysql.com:/home/stewart/Documents/MySQL/4.1/bug11607

parents 7d64ba09 eac727b5
Loading
Loading
Loading
Loading
+24 −2
Original line number Diff line number Diff line
@@ -280,6 +280,7 @@ NdbConnection::execute(ExecType aTypeOfExec,
		       AbortOption abortOption,
		       int forceSend)
{
  NdbError savedError= theError;
  DBUG_ENTER("NdbConnection::execute");
  DBUG_PRINT("enter", ("aTypeOfExec: %d, abortOption: %d", 
		       aTypeOfExec, abortOption));
@@ -309,7 +310,11 @@ NdbConnection::execute(ExecType aTypeOfExec,
        NdbBlob* tBlob = tPrepOp->theBlobList;
        while (tBlob != NULL) {
          if (tBlob->preExecute(tExecType, batch) == -1)
	  {
            ret = -1;
	    if(savedError.code==0)
	      savedError= theError;
	  }
          tBlob = tBlob->theNext;
        }
        if (batch) {
@@ -338,7 +343,11 @@ NdbConnection::execute(ExecType aTypeOfExec,
          NdbBlob* tBlob = tOp->theBlobList;
          while (tBlob != NULL) {
            if (tBlob->preCommit() == -1)
	    {
	      ret = -1;
	      if(savedError.code==0)
		savedError= theError;
	    }
            tBlob = tBlob->theNext;
          }
        }
@@ -360,7 +369,12 @@ NdbConnection::execute(ExecType aTypeOfExec,
    }

    if (executeNoBlobs(tExecType, abortOption, forceSend) == -1)
    {
      ret = -1;
      if(savedError.code==0)
	savedError= theError;
    }

#ifdef ndb_api_crash_on_complex_blob_abort
    assert(theFirstOpInList == NULL && theLastOpInList == NULL);
#else
@@ -375,7 +389,11 @@ NdbConnection::execute(ExecType aTypeOfExec,
          while (tBlob != NULL) {
            // may add new operations if batch
            if (tBlob->postExecute(tExecType) == -1)
	    {
              ret = -1;
	      if(savedError.code==0)
		savedError= theError;
	    }
            tBlob = tBlob->theNext;
          }
        }
@@ -406,6 +424,10 @@ NdbConnection::execute(ExecType aTypeOfExec,
    ndbout << "completed ops: " << n << endl;
  }
#endif

  if(savedError.code!=0 && theError.code==4350) // Trans already aborted
      theError= savedError;

  DBUG_RETURN(ret);
}