summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoreland@mysql.com <>2004-08-05 17:38:06 +0200
committerjoreland@mysql.com <>2004-08-05 17:38:06 +0200
commitf851b03af598068a283d6f142fd8df825a04dd6d (patch)
tree7aaacee52623942a139ac6960217615c465e849b
parent86d2906be536e7bcc19cd6fbc01a948ad133a204 (diff)
downloadmariadb-git-f851b03af598068a283d6f142fd8df825a04dd6d.tar.gz
Fix bug for TCKEYREF's when using IgnoreError
-rw-r--r--ndb/src/ndbapi/NdbConnection.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/ndb/src/ndbapi/NdbConnection.cpp b/ndb/src/ndbapi/NdbConnection.cpp
index db6201ee9bb..cd051bb4609 100644
--- a/ndb/src/ndbapi/NdbConnection.cpp
+++ b/ndb/src/ndbapi/NdbConnection.cpp
@@ -1477,6 +1477,17 @@ from other transactions.
theGlobalCheckpointId = tGCI;
} else if ((tNoComp >= tNoSent) &&
(theLastExecOpInList->theCommitIndicator == 1)){
+
+
+ if (m_abortOption == IgnoreError && theError.code != 0){
+ /**
+ * There's always a TCKEYCONF when using IgnoreError
+ */
+#ifdef VM_TRACE
+ ndbout_c("Not completing transaction 2");
+#endif
+ return -1;
+ }
/**********************************************************************/
// We sent the transaction with Commit flag set and received a CONF with
// no Commit flag set. This is clearly an anomaly.
@@ -1720,6 +1731,16 @@ NdbConnection::OpCompleteFailure()
if (theSimpleState == 1) {
theCommitStatus = NdbConnection::Aborted;
}//if
+ if (m_abortOption == IgnoreError){
+ /**
+ * There's always a TCKEYCONF when using IgnoreError
+ */
+#ifdef VM_TRACE
+ ndbout_c("Not completing transaction");
+#endif
+ return -1;
+ }
+
return 0; // Last operation received
} else if (tNoComp > tNoSent) {
setOperationErrorCodeAbort(4113); // Too many operations,