"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "src/jrd/extds/InternalDS.cpp" between
Firebird-3.0.2.32703-0.tar.bz2 and Firebird-3.0.4.33054-0.tar.bz2

About: Firebird is a relational database offering many ANSI SQL standard features.

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

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)