InternalDS.cpp (Firebird-3.0.2.32703-0.tar.bz2) | : | InternalDS.cpp (Firebird-3.0.4.33054-0.tar.bz2) | ||
---|---|---|---|---|
skipping to change at line 169 | skipping to change at line 169 | |||
m_dbName = dbb->dbb_database_name.c_str(); | m_dbName = dbb->dbb_database_name.c_str(); | |||
generateDPB(tdbb, m_dpb, user, pwd, role); | generateDPB(tdbb, m_dpb, user, pwd, role); | |||
// Avoid change of m_dpb by validatePassword() below | // Avoid change of m_dpb by validatePassword() below | |||
ClumpletWriter newDpb(m_dpb); | ClumpletWriter newDpb(m_dpb); | |||
validatePassword(tdbb, m_dbName, newDpb); | validatePassword(tdbb, m_dbName, newDpb); | |||
FbLocalStatus status; | FbLocalStatus status; | |||
{ | { | |||
EngineCallbackGuard guard(tdbb, *this, FB_FUNCTION); | EngineCallbackGuard guard(tdbb, *this, FB_FUNCTION); | |||
RefPtr<JProvider> jInstance(JProvider::getInstance()); | AutoPlugin<JProvider> jInstance(JProvider::getInstance()) ; | |||
jInstance->setDbCryptCallback(&status, tdbb->getAttachmen t()->att_crypt_callback); | jInstance->setDbCryptCallback(&status, tdbb->getAttachmen t()->att_crypt_callback); | |||
m_attachment.assignRefNoIncr(jInstance->attachDatabase(&s tatus, m_dbName.c_str(), | m_attachment.assignRefNoIncr(jInstance->attachDatabase(&s tatus, m_dbName.c_str(), | |||
newDpb.getBufferLength(), newDpb.getBuffer())); | newDpb.getBufferLength(), newDpb.getBuffer())); | |||
} | } | |||
if (status->getState() & IStatus::STATE_ERRORS) | if (status->getState() & IStatus::STATE_ERRORS) | |||
raise(&status, tdbb, "JProvider::attach"); | raise(&status, tdbb, "JProvider::attach"); | |||
} | } | |||
m_sqlDialect = (m_attachment->getHandle()->att_database->dbb_flags & DBB_ DB_SQL_dialect_3) ? | m_sqlDialect = (m_attachment->getHandle()->att_database->dbb_flags & DBB_ DB_SQL_dialect_3) ? | |||
skipping to change at line 220 | skipping to change at line 220 | |||
if (status->getState() & IStatus::STATE_ERRORS) | if (status->getState() & IStatus::STATE_ERRORS) | |||
{ | { | |||
m_attachment = att; | m_attachment = att; | |||
raise(&status, tdbb, "JAttachment::detach"); | raise(&status, tdbb, "JAttachment::detach"); | |||
} | } | |||
} | } | |||
fb_assert(!m_attachment); | fb_assert(!m_attachment); | |||
} | } | |||
bool InternalConnection::cancelExecution() | bool InternalConnection::cancelExecution(bool /*forced*/) | |||
{ | { | |||
if (!m_attachment->getHandle()) | if (!m_attachment->getHandle()) | |||
return false; | return false; | |||
if (m_isCurrent) | if (m_isCurrent) | |||
return true; | return true; | |||
FbLocalStatus status; | FbLocalStatus status; | |||
m_attachment->cancelOperation(&status, fb_cancel_raise); | m_attachment->cancelOperation(&status, fb_cancel_raise); | |||
skipping to change at line 284 | skipping to change at line 284 | |||
// InternalTransaction() | // InternalTransaction() | |||
void InternalTransaction::doStart(FbStatusVector* status, thread_db* tdbb, Clump letWriter& tpb) | void InternalTransaction::doStart(FbStatusVector* status, thread_db* tdbb, Clump letWriter& tpb) | |||
{ | { | |||
fb_assert(!m_transaction); | fb_assert(!m_transaction); | |||
jrd_tra* localTran = tdbb->getTransaction(); | jrd_tra* localTran = tdbb->getTransaction(); | |||
fb_assert(localTran); | fb_assert(localTran); | |||
if (m_scope == traCommon && m_IntConnection.isCurrent()) | if (m_scope == traCommon && m_IntConnection.isCurrent()) | |||
m_transaction = localTran->getInterface(); | m_transaction = localTran->getInterface(true); | |||
else | else | |||
{ | { | |||
JAttachment* att = m_IntConnection.getJrdAtt(); | JAttachment* att = m_IntConnection.getJrdAtt(); | |||
EngineCallbackGuard guard(tdbb, *this, FB_FUNCTION); | EngineCallbackGuard guard(tdbb, *this, FB_FUNCTION); | |||
IntStatus s(status); | IntStatus s(status); | |||
m_transaction.assignRefNoIncr( | m_transaction.assignRefNoIncr( | |||
att->startTransaction(&s, tpb.getBufferLength(), tpb.getB uffer())); | att->startTransaction(&s, tpb.getBufferLength(), tpb.getB uffer())); | |||
skipping to change at line 333 | skipping to change at line 333 | |||
m_transaction->commitRetaining(&s); | m_transaction->commitRetaining(&s); | |||
else | else | |||
m_transaction->commit(&s); | m_transaction->commit(&s); | |||
} | } | |||
} | } | |||
void InternalTransaction::doRollback(FbStatusVector* status, thread_db* tdbb, bo ol retain) | void InternalTransaction::doRollback(FbStatusVector* status, thread_db* tdbb, bo ol retain) | |||
{ | { | |||
fb_assert(m_transaction); | fb_assert(m_transaction); | |||
if (m_connection.isBroken()) | ||||
{ | ||||
m_transaction = NULL; | ||||
m_jrdTran = NULL; | ||||
return; | ||||
} | ||||
if (m_scope == traCommon && m_IntConnection.isCurrent()) | if (m_scope == traCommon && m_IntConnection.isCurrent()) | |||
{ | { | |||
if (!retain) { | if (!retain) { | |||
m_transaction = NULL; | m_transaction = NULL; | |||
} | } | |||
} | } | |||
else | else | |||
{ | { | |||
IntStatus s(status); | IntStatus s(status); | |||
End of changes. 4 change blocks. | ||||
3 lines changed or deleted | 10 lines changed or added |