Loading sql/ha_ndbcluster.cc +15 −14 Original line number Diff line number Diff line Loading @@ -261,13 +261,14 @@ static int ndb_to_mysql_error(const NdbError *ndberr) int execute_no_commit_ignore_no_key(ha_ndbcluster *h, NdbTransaction *trans) { int res= trans->execute(NdbTransaction::NoCommit, NdbTransaction::AO_IgnoreError, NdbOperation::AO_IgnoreError, h->m_force_send); if (res == 0) return 0; if (res == -1) return -1; const NdbError &err= trans->getNdbError(); if (err.classification != NdbError::ConstraintViolation && if (err.classification != NdbError::NoError && err.classification != NdbError::ConstraintViolation && err.classification != NdbError::NoDataFound) return res; Loading @@ -287,7 +288,7 @@ int execute_no_commit(ha_ndbcluster *h, NdbTransaction *trans, return h->m_ignore_no_key ? execute_no_commit_ignore_no_key(h,trans) : trans->execute(NdbTransaction::NoCommit, NdbTransaction::AbortOnError, NdbOperation::AbortOnError, h->m_force_send); } Loading @@ -300,7 +301,7 @@ int execute_commit(ha_ndbcluster *h, NdbTransaction *trans) return 0; #endif return trans->execute(NdbTransaction::Commit, NdbTransaction::AbortOnError, NdbOperation::AbortOnError, h->m_force_send); } Loading @@ -313,7 +314,7 @@ int execute_commit(THD *thd, NdbTransaction *trans) return 0; #endif return trans->execute(NdbTransaction::Commit, NdbTransaction::AbortOnError, NdbOperation::AbortOnError, thd->variables.ndb_force_send); } Loading @@ -328,7 +329,7 @@ int execute_no_commit_ie(ha_ndbcluster *h, NdbTransaction *trans, #endif h->release_completed_operations(trans, force_release); return trans->execute(NdbTransaction::NoCommit, NdbTransaction::AO_IgnoreError, NdbOperation::AO_IgnoreError, h->m_force_send); } Loading Loading @@ -1732,7 +1733,8 @@ int ha_ndbcluster::pk_read(const byte *key, uint key_len, byte *buf, ERR_RETURN(trans->getNdbError()); } if (execute_no_commit_ie(this,trans,false) != 0) if ((res = execute_no_commit_ie(this,trans,false)) != 0 || op->getNdbError().code) { table->status= STATUS_NOT_FOUND; DBUG_RETURN(ndb_err(trans)); Loading Loading @@ -2004,7 +2006,8 @@ int ha_ndbcluster::unique_index_read(const byte *key, if ((res= define_read_attrs(buf, op))) DBUG_RETURN(res); if (execute_no_commit_ie(this,trans,false) != 0) if (execute_no_commit_ie(this,trans,false) != 0 || op->getNdbError().code) { table->status= STATUS_NOT_FOUND; DBUG_RETURN(ndb_err(trans)); Loading Loading @@ -7810,7 +7813,7 @@ ndb_get_table_statistics(ha_ndbcluster* file, bool report_error, Ndb* ndb, const (char*)&var_mem); if (pTrans->execute(NdbTransaction::NoCommit, NdbTransaction::AbortOnError, NdbOperation::AbortOnError, TRUE) == -1) { error= pTrans->getNdbError(); Loading Loading @@ -8068,7 +8071,6 @@ ha_ndbcluster::read_multi_range_first(KEY_MULTI_RANGE **found_range_p, !op->readTuple(lm) && !set_primary_key(op, multi_range_curr->start_key.key) && !define_read_attrs(curr, op) && (op->setAbortOption(AO_IgnoreError), TRUE) && (!m_use_partition_function || (op->setPartitionId(part_spec.start_part), true))) curr += reclength; Loading @@ -8090,8 +8092,7 @@ ha_ndbcluster::read_multi_range_first(KEY_MULTI_RANGE **found_range_p, if ((op= m_active_trans->getNdbIndexOperation(unique_idx, tab)) && !op->readTuple(lm) && !set_index_key(op, key_info, multi_range_curr->start_key.key) && !define_read_attrs(curr, op) && (op->setAbortOption(AO_IgnoreError), TRUE)) !define_read_attrs(curr, op)) curr += reclength; else ERR_RETURN(op ? op->getNdbError() : m_active_trans->getNdbError()); Loading storage/ndb/include/ndbapi/NdbIndexOperation.hpp +0 −2 Original line number Diff line number Diff line Loading @@ -181,8 +181,6 @@ private: const class NdbTableImpl* aTable, NdbTransaction*); int prepareSend(Uint32 TC_ConnectPtr, Uint64 TransactionId); // Private attributes const NdbIndexImpl* m_theIndex; friend struct Ndb_free_list_t<NdbIndexOperation>; Loading storage/ndb/include/ndbapi/NdbOperation.hpp +21 −2 Original line number Diff line number Diff line Loading @@ -97,6 +97,19 @@ public: #endif }; /** * How should transaction be handled if operation fails * * For READ, default is AO_IgnoreError * DML, default is AbortOnError * CommittedRead does _only_ support AO_IgnoreError */ enum AbortOption { DefaultAbortOption = -1,///< Use default as specified by op-type AbortOnError = 0, ///< Abort transaction on failed operation AO_IgnoreError = 2 ///< Transaction continues on failed operation }; /** * Define the NdbOperation to be a standard operation of type insertTuple. * When calling NdbTransaction::execute, this operation Loading Loading @@ -776,8 +789,13 @@ public: */ LockMode getLockMode() const { return theLockMode; } /** * Get/set abort option */ AbortOption getAbortOption() const; int setAbortOption(AbortOption); #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL void setAbortOption(Int8 ao) { m_abortOption = ao; } /** * Set/get partition key Loading Loading @@ -856,7 +874,8 @@ protected: int doSend(int ProcessorId, Uint32 lastFlag); virtual int prepareSend(Uint32 TC_ConnectPtr, Uint64 TransactionId); Uint64 TransactionId, AbortOption); virtual void setLastFlag(NdbApiSignal* signal, Uint32 lastFlag); int prepareSendInterpreted(); // Help routine to prepare* Loading storage/ndb/include/ndbapi/NdbTransaction.hpp +22 −34 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ #include "NdbError.hpp" #include "NdbDictionary.hpp" #include "Ndb.hpp" #include "NdbOperation.hpp" class NdbTransaction; class NdbOperation; Loading @@ -44,11 +45,12 @@ typedef void (* NdbAsynchCallback)(int, NdbTransaction*, void*); #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL enum AbortOption { CommitIfFailFree= 0, TryCommit= 0, AbortOnError= 0, CommitAsMuchAsPossible= 2, AO_IgnoreError= 2 DefaultAbortOption = NdbOperation::DefaultAbortOption, CommitIfFailFree = NdbOperation::AbortOnError, TryCommit = NdbOperation::AbortOnError, AbortOnError= NdbOperation::AbortOnError, CommitAsMuchAsPossible = NdbOperation::AO_IgnoreError, AO_IgnoreError= NdbOperation::AO_IgnoreError }; enum ExecType { NoExecTypeDef = -1, Loading Loading @@ -144,20 +146,6 @@ class NdbTransaction public: /** * Commit type of transaction */ enum AbortOption { AbortOnError= ///< Abort transaction on failed operation #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL ::AbortOnError #endif ,AO_IgnoreError= ///< Transaction continues on failed operation #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL ::AO_IgnoreError #endif }; /** * Execution type of transaction */ Loading Loading @@ -316,13 +304,15 @@ public: * @return 0 if successful otherwise -1. */ int execute(ExecType execType, AbortOption abortOption = AbortOnError, NdbOperation::AbortOption = NdbOperation::DefaultAbortOption, int force = 0 ); #ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED int execute(::ExecType execType, ::AbortOption abortOption = ::AbortOnError, int force = 0 ) { return execute ((ExecType)execType,(AbortOption)abortOption,force); } ::AbortOption abortOption = ::DefaultAbortOption, int force = 0 ) { return execute ((ExecType)execType, (NdbOperation::AbortOption)abortOption, force); } #endif #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL Loading Loading @@ -353,14 +343,14 @@ public: void executeAsynchPrepare(ExecType execType, NdbAsynchCallback callback, void* anyObject, AbortOption abortOption = AbortOnError); NdbOperation::AbortOption = NdbOperation::DefaultAbortOption); #ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED void executeAsynchPrepare(::ExecType execType, NdbAsynchCallback callback, void* anyObject, ::AbortOption abortOption = ::AbortOnError) { executeAsynchPrepare((ExecType)execType, callback, anyObject, (AbortOption)abortOption); } ::AbortOption ao = ::DefaultAbortOption) { executeAsynchPrepare((ExecType)execType, callback, anyObject, (NdbOperation::AbortOption)ao); } #endif /** Loading @@ -379,14 +369,14 @@ public: void executeAsynch(ExecType aTypeOfExec, NdbAsynchCallback aCallback, void* anyObject, AbortOption abortOption = AbortOnError); NdbOperation::AbortOption = NdbOperation::DefaultAbortOption); #ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED void executeAsynch(::ExecType aTypeOfExec, NdbAsynchCallback aCallback, void* anyObject, ::AbortOption abortOption= ::AbortOnError) ::AbortOption abortOption= ::DefaultAbortOption) { executeAsynch((ExecType)aTypeOfExec, aCallback, anyObject, (AbortOption)abortOption); } (NdbOperation::AbortOption)abortOption); } #endif #endif /** Loading Loading @@ -588,7 +578,7 @@ private: void init(); // Initialize connection object for new transaction int executeNoBlobs(ExecType execType, AbortOption abortOption = AbortOnError, NdbOperation::AbortOption = NdbOperation::DefaultAbortOption, int force = 0 ); /** Loading Loading @@ -642,7 +632,7 @@ private: int sendCOMMIT(); // Send a TC_COMMITREQ signal; void setGCI(int GCI); // Set the global checkpoint identity int OpCompleteFailure(Uint8 abortoption, bool setFailure = true); int OpCompleteFailure(NdbOperation*); int OpCompleteSuccess(); void CompletedOperations(); // Move active ops to list of completed Loading Loading @@ -732,7 +722,6 @@ private: Uint32 theNoOfOpSent; // How many operations have been sent Uint32 theNoOfOpCompleted; // How many operations have completed Uint32 theNoOfOpFetched; // How many operations was actually fetched Uint32 theMyRef; // Our block reference Uint32 theTCConPtr; // Transaction Co-ordinator connection pointer. Uint64 theTransactionId; // theTransactionId of the transaction Loading @@ -756,7 +745,6 @@ private: bool theTransactionIsStarted; bool theInUseState; bool theSimpleState; Uint8 m_abortOption; // Type of commi enum ListState { NotInList, Loading storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp +22 −11 Original line number Diff line number Diff line Loading @@ -2479,8 +2479,16 @@ Dblqh::execREMOVE_MARKER_ORD(Signal* signal) CommitAckMarkerPtr removedPtr; m_commitAckMarkerHash.remove(removedPtr, key); #if defined VM_TRACE || defined ERROR_INSERT ndbrequire(removedPtr.i != RNIL); m_commitAckMarkerPool.release(removedPtr); #else if (removedPtr.i != RNIL) { jam(); m_commitAckMarkerPool.release(removedPtr); } #endif #ifdef MARKER_TRACE ndbout_c("Rem marker[%.8x %.8x]", key.transid1, key.transid2); #endif Loading Loading @@ -3138,6 +3146,8 @@ void Dblqh::lqhAttrinfoLab(Signal* signal, Uint32* dataPtr, Uint32 length) { TcConnectionrec * const regTcPtr = tcConnectptr.p; if (regTcPtr->operation != ZREAD) { if (regTcPtr->operation != ZDELETE) { if (regTcPtr->opExec != 1) { if (saveTupattrbuf(signal, dataPtr, length) == ZOK) { ; Loading @@ -3152,6 +3162,7 @@ void Dblqh::lqhAttrinfoLab(Signal* signal, Uint32* dataPtr, Uint32 length) }//if }//if }//if } c_tup->receive_attrinfo(signal, regTcPtr->tupConnectrec, dataPtr, length); }//Dblqh::lqhAttrinfoLab() Loading Loading @@ -3405,7 +3416,7 @@ void Dblqh::execLQHKEYREQ(Signal* signal) markerPtr.p->tcNodeId = tcNodeId; CommitAckMarkerPtr tmp; #ifdef VM_TRACE #if defined VM_TRACE || defined ERROR_INSERT #ifdef MARKER_TRACE ndbout_c("Add marker[%.8x %.8x]", markerPtr.p->transid1, markerPtr.p->transid2); #endif Loading Loading @@ -9629,7 +9640,7 @@ Uint32 Dblqh::initScanrec(const ScanFragReq* scanFragReq) active.add(scanptr); if(scanptr.p->scanKeyinfoFlag){ jam(); #ifdef VM_TRACE #if defined VM_TRACE || defined ERROR_INSERT ScanRecordPtr tmp; ndbrequire(!c_scanTakeOverHash.find(tmp, * scanptr.p)); #endif Loading Loading @@ -9753,7 +9764,7 @@ void Dblqh::finishScanrec(Signal* signal) scans.add(restart); if(restart.p->scanKeyinfoFlag){ jam(); #ifdef VM_TRACE #if defined VM_TRACE || defined ERROR_INSERT ScanRecordPtr tmp; ndbrequire(!c_scanTakeOverHash.find(tmp, * restart.p)); #endif Loading Loading
sql/ha_ndbcluster.cc +15 −14 Original line number Diff line number Diff line Loading @@ -261,13 +261,14 @@ static int ndb_to_mysql_error(const NdbError *ndberr) int execute_no_commit_ignore_no_key(ha_ndbcluster *h, NdbTransaction *trans) { int res= trans->execute(NdbTransaction::NoCommit, NdbTransaction::AO_IgnoreError, NdbOperation::AO_IgnoreError, h->m_force_send); if (res == 0) return 0; if (res == -1) return -1; const NdbError &err= trans->getNdbError(); if (err.classification != NdbError::ConstraintViolation && if (err.classification != NdbError::NoError && err.classification != NdbError::ConstraintViolation && err.classification != NdbError::NoDataFound) return res; Loading @@ -287,7 +288,7 @@ int execute_no_commit(ha_ndbcluster *h, NdbTransaction *trans, return h->m_ignore_no_key ? execute_no_commit_ignore_no_key(h,trans) : trans->execute(NdbTransaction::NoCommit, NdbTransaction::AbortOnError, NdbOperation::AbortOnError, h->m_force_send); } Loading @@ -300,7 +301,7 @@ int execute_commit(ha_ndbcluster *h, NdbTransaction *trans) return 0; #endif return trans->execute(NdbTransaction::Commit, NdbTransaction::AbortOnError, NdbOperation::AbortOnError, h->m_force_send); } Loading @@ -313,7 +314,7 @@ int execute_commit(THD *thd, NdbTransaction *trans) return 0; #endif return trans->execute(NdbTransaction::Commit, NdbTransaction::AbortOnError, NdbOperation::AbortOnError, thd->variables.ndb_force_send); } Loading @@ -328,7 +329,7 @@ int execute_no_commit_ie(ha_ndbcluster *h, NdbTransaction *trans, #endif h->release_completed_operations(trans, force_release); return trans->execute(NdbTransaction::NoCommit, NdbTransaction::AO_IgnoreError, NdbOperation::AO_IgnoreError, h->m_force_send); } Loading Loading @@ -1732,7 +1733,8 @@ int ha_ndbcluster::pk_read(const byte *key, uint key_len, byte *buf, ERR_RETURN(trans->getNdbError()); } if (execute_no_commit_ie(this,trans,false) != 0) if ((res = execute_no_commit_ie(this,trans,false)) != 0 || op->getNdbError().code) { table->status= STATUS_NOT_FOUND; DBUG_RETURN(ndb_err(trans)); Loading Loading @@ -2004,7 +2006,8 @@ int ha_ndbcluster::unique_index_read(const byte *key, if ((res= define_read_attrs(buf, op))) DBUG_RETURN(res); if (execute_no_commit_ie(this,trans,false) != 0) if (execute_no_commit_ie(this,trans,false) != 0 || op->getNdbError().code) { table->status= STATUS_NOT_FOUND; DBUG_RETURN(ndb_err(trans)); Loading Loading @@ -7810,7 +7813,7 @@ ndb_get_table_statistics(ha_ndbcluster* file, bool report_error, Ndb* ndb, const (char*)&var_mem); if (pTrans->execute(NdbTransaction::NoCommit, NdbTransaction::AbortOnError, NdbOperation::AbortOnError, TRUE) == -1) { error= pTrans->getNdbError(); Loading Loading @@ -8068,7 +8071,6 @@ ha_ndbcluster::read_multi_range_first(KEY_MULTI_RANGE **found_range_p, !op->readTuple(lm) && !set_primary_key(op, multi_range_curr->start_key.key) && !define_read_attrs(curr, op) && (op->setAbortOption(AO_IgnoreError), TRUE) && (!m_use_partition_function || (op->setPartitionId(part_spec.start_part), true))) curr += reclength; Loading @@ -8090,8 +8092,7 @@ ha_ndbcluster::read_multi_range_first(KEY_MULTI_RANGE **found_range_p, if ((op= m_active_trans->getNdbIndexOperation(unique_idx, tab)) && !op->readTuple(lm) && !set_index_key(op, key_info, multi_range_curr->start_key.key) && !define_read_attrs(curr, op) && (op->setAbortOption(AO_IgnoreError), TRUE)) !define_read_attrs(curr, op)) curr += reclength; else ERR_RETURN(op ? op->getNdbError() : m_active_trans->getNdbError()); Loading
storage/ndb/include/ndbapi/NdbIndexOperation.hpp +0 −2 Original line number Diff line number Diff line Loading @@ -181,8 +181,6 @@ private: const class NdbTableImpl* aTable, NdbTransaction*); int prepareSend(Uint32 TC_ConnectPtr, Uint64 TransactionId); // Private attributes const NdbIndexImpl* m_theIndex; friend struct Ndb_free_list_t<NdbIndexOperation>; Loading
storage/ndb/include/ndbapi/NdbOperation.hpp +21 −2 Original line number Diff line number Diff line Loading @@ -97,6 +97,19 @@ public: #endif }; /** * How should transaction be handled if operation fails * * For READ, default is AO_IgnoreError * DML, default is AbortOnError * CommittedRead does _only_ support AO_IgnoreError */ enum AbortOption { DefaultAbortOption = -1,///< Use default as specified by op-type AbortOnError = 0, ///< Abort transaction on failed operation AO_IgnoreError = 2 ///< Transaction continues on failed operation }; /** * Define the NdbOperation to be a standard operation of type insertTuple. * When calling NdbTransaction::execute, this operation Loading Loading @@ -776,8 +789,13 @@ public: */ LockMode getLockMode() const { return theLockMode; } /** * Get/set abort option */ AbortOption getAbortOption() const; int setAbortOption(AbortOption); #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL void setAbortOption(Int8 ao) { m_abortOption = ao; } /** * Set/get partition key Loading Loading @@ -856,7 +874,8 @@ protected: int doSend(int ProcessorId, Uint32 lastFlag); virtual int prepareSend(Uint32 TC_ConnectPtr, Uint64 TransactionId); Uint64 TransactionId, AbortOption); virtual void setLastFlag(NdbApiSignal* signal, Uint32 lastFlag); int prepareSendInterpreted(); // Help routine to prepare* Loading
storage/ndb/include/ndbapi/NdbTransaction.hpp +22 −34 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ #include "NdbError.hpp" #include "NdbDictionary.hpp" #include "Ndb.hpp" #include "NdbOperation.hpp" class NdbTransaction; class NdbOperation; Loading @@ -44,11 +45,12 @@ typedef void (* NdbAsynchCallback)(int, NdbTransaction*, void*); #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL enum AbortOption { CommitIfFailFree= 0, TryCommit= 0, AbortOnError= 0, CommitAsMuchAsPossible= 2, AO_IgnoreError= 2 DefaultAbortOption = NdbOperation::DefaultAbortOption, CommitIfFailFree = NdbOperation::AbortOnError, TryCommit = NdbOperation::AbortOnError, AbortOnError= NdbOperation::AbortOnError, CommitAsMuchAsPossible = NdbOperation::AO_IgnoreError, AO_IgnoreError= NdbOperation::AO_IgnoreError }; enum ExecType { NoExecTypeDef = -1, Loading Loading @@ -144,20 +146,6 @@ class NdbTransaction public: /** * Commit type of transaction */ enum AbortOption { AbortOnError= ///< Abort transaction on failed operation #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL ::AbortOnError #endif ,AO_IgnoreError= ///< Transaction continues on failed operation #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL ::AO_IgnoreError #endif }; /** * Execution type of transaction */ Loading Loading @@ -316,13 +304,15 @@ public: * @return 0 if successful otherwise -1. */ int execute(ExecType execType, AbortOption abortOption = AbortOnError, NdbOperation::AbortOption = NdbOperation::DefaultAbortOption, int force = 0 ); #ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED int execute(::ExecType execType, ::AbortOption abortOption = ::AbortOnError, int force = 0 ) { return execute ((ExecType)execType,(AbortOption)abortOption,force); } ::AbortOption abortOption = ::DefaultAbortOption, int force = 0 ) { return execute ((ExecType)execType, (NdbOperation::AbortOption)abortOption, force); } #endif #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL Loading Loading @@ -353,14 +343,14 @@ public: void executeAsynchPrepare(ExecType execType, NdbAsynchCallback callback, void* anyObject, AbortOption abortOption = AbortOnError); NdbOperation::AbortOption = NdbOperation::DefaultAbortOption); #ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED void executeAsynchPrepare(::ExecType execType, NdbAsynchCallback callback, void* anyObject, ::AbortOption abortOption = ::AbortOnError) { executeAsynchPrepare((ExecType)execType, callback, anyObject, (AbortOption)abortOption); } ::AbortOption ao = ::DefaultAbortOption) { executeAsynchPrepare((ExecType)execType, callback, anyObject, (NdbOperation::AbortOption)ao); } #endif /** Loading @@ -379,14 +369,14 @@ public: void executeAsynch(ExecType aTypeOfExec, NdbAsynchCallback aCallback, void* anyObject, AbortOption abortOption = AbortOnError); NdbOperation::AbortOption = NdbOperation::DefaultAbortOption); #ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED void executeAsynch(::ExecType aTypeOfExec, NdbAsynchCallback aCallback, void* anyObject, ::AbortOption abortOption= ::AbortOnError) ::AbortOption abortOption= ::DefaultAbortOption) { executeAsynch((ExecType)aTypeOfExec, aCallback, anyObject, (AbortOption)abortOption); } (NdbOperation::AbortOption)abortOption); } #endif #endif /** Loading Loading @@ -588,7 +578,7 @@ private: void init(); // Initialize connection object for new transaction int executeNoBlobs(ExecType execType, AbortOption abortOption = AbortOnError, NdbOperation::AbortOption = NdbOperation::DefaultAbortOption, int force = 0 ); /** Loading Loading @@ -642,7 +632,7 @@ private: int sendCOMMIT(); // Send a TC_COMMITREQ signal; void setGCI(int GCI); // Set the global checkpoint identity int OpCompleteFailure(Uint8 abortoption, bool setFailure = true); int OpCompleteFailure(NdbOperation*); int OpCompleteSuccess(); void CompletedOperations(); // Move active ops to list of completed Loading Loading @@ -732,7 +722,6 @@ private: Uint32 theNoOfOpSent; // How many operations have been sent Uint32 theNoOfOpCompleted; // How many operations have completed Uint32 theNoOfOpFetched; // How many operations was actually fetched Uint32 theMyRef; // Our block reference Uint32 theTCConPtr; // Transaction Co-ordinator connection pointer. Uint64 theTransactionId; // theTransactionId of the transaction Loading @@ -756,7 +745,6 @@ private: bool theTransactionIsStarted; bool theInUseState; bool theSimpleState; Uint8 m_abortOption; // Type of commi enum ListState { NotInList, Loading
storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp +22 −11 Original line number Diff line number Diff line Loading @@ -2479,8 +2479,16 @@ Dblqh::execREMOVE_MARKER_ORD(Signal* signal) CommitAckMarkerPtr removedPtr; m_commitAckMarkerHash.remove(removedPtr, key); #if defined VM_TRACE || defined ERROR_INSERT ndbrequire(removedPtr.i != RNIL); m_commitAckMarkerPool.release(removedPtr); #else if (removedPtr.i != RNIL) { jam(); m_commitAckMarkerPool.release(removedPtr); } #endif #ifdef MARKER_TRACE ndbout_c("Rem marker[%.8x %.8x]", key.transid1, key.transid2); #endif Loading Loading @@ -3138,6 +3146,8 @@ void Dblqh::lqhAttrinfoLab(Signal* signal, Uint32* dataPtr, Uint32 length) { TcConnectionrec * const regTcPtr = tcConnectptr.p; if (regTcPtr->operation != ZREAD) { if (regTcPtr->operation != ZDELETE) { if (regTcPtr->opExec != 1) { if (saveTupattrbuf(signal, dataPtr, length) == ZOK) { ; Loading @@ -3152,6 +3162,7 @@ void Dblqh::lqhAttrinfoLab(Signal* signal, Uint32* dataPtr, Uint32 length) }//if }//if }//if } c_tup->receive_attrinfo(signal, regTcPtr->tupConnectrec, dataPtr, length); }//Dblqh::lqhAttrinfoLab() Loading Loading @@ -3405,7 +3416,7 @@ void Dblqh::execLQHKEYREQ(Signal* signal) markerPtr.p->tcNodeId = tcNodeId; CommitAckMarkerPtr tmp; #ifdef VM_TRACE #if defined VM_TRACE || defined ERROR_INSERT #ifdef MARKER_TRACE ndbout_c("Add marker[%.8x %.8x]", markerPtr.p->transid1, markerPtr.p->transid2); #endif Loading Loading @@ -9629,7 +9640,7 @@ Uint32 Dblqh::initScanrec(const ScanFragReq* scanFragReq) active.add(scanptr); if(scanptr.p->scanKeyinfoFlag){ jam(); #ifdef VM_TRACE #if defined VM_TRACE || defined ERROR_INSERT ScanRecordPtr tmp; ndbrequire(!c_scanTakeOverHash.find(tmp, * scanptr.p)); #endif Loading Loading @@ -9753,7 +9764,7 @@ void Dblqh::finishScanrec(Signal* signal) scans.add(restart); if(restart.p->scanKeyinfoFlag){ jam(); #ifdef VM_TRACE #if defined VM_TRACE || defined ERROR_INSERT ScanRecordPtr tmp; ndbrequire(!c_scanTakeOverHash.find(tmp, * restart.p)); #endif Loading