MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / doStart

Method doStart

src/jrd/extds/IscDS.cpp:357–386  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

355}
356
357void IscTransaction::doStart(FbStatusVector* status, thread_db* tdbb, Firebird::ClumpletWriter& tpb)
358{
359 fb_assert(!m_handle);
360 FB_API_HANDLE& db_handle = m_iscConnection.getAPIHandle();
361
362 {
363 EngineCallbackGuard guard(tdbb, *this, FB_FUNCTION);
364 m_iscProvider.isc_start_transaction(status, &m_handle, 1, &db_handle,
365 tpb.getBufferLength(), tpb.getBuffer());
366 }
367
368 if ((status->getState() & IStatus::STATE_ERRORS) &&
369 (status->getErrors()[1] == isc_bad_tpb_form) &&
370 tpb.find(isc_tpb_read_consistency) &&
371 m_connection.testFeature(fb_feature_read_consistency))
372 {
373 tpb.deleteWithTag(isc_tpb_read_committed);
374 tpb.deleteWithTag(isc_tpb_read_consistency);
375 tpb.insertTag(isc_tpb_concurrency);
376
377 {
378 EngineCallbackGuard guard(tdbb, *this, FB_FUNCTION);
379 m_iscProvider.isc_start_transaction(status, &m_handle, 1, &db_handle,
380 tpb.getBufferLength(), tpb.getBuffer());
381 }
382
383 if (!(status->getState() & IStatus::STATE_ERRORS))
384 m_connection.clearFeature(fb_feature_read_consistency);
385 }
386}
387
388void IscTransaction::doPrepare(FbStatusVector* /*status*/, thread_db* /*tdbb*/, int /*info_len*/, const char* /*info*/)
389{

Callers

nothing calls this directly

Calls 10

isc_start_transactionMethod · 0.80
testFeatureMethod · 0.80
deleteWithTagMethod · 0.80
clearFeatureMethod · 0.80
getBufferLengthMethod · 0.45
getBufferMethod · 0.45
getStateMethod · 0.45
getErrorsMethod · 0.45
findMethod · 0.45
insertTagMethod · 0.45

Tested by

no test coverage detected