Commit f5df855f authored by unknown's avatar unknown

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

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

parents 7d64ba09 eac727b5
......@@ -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);
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment