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

Method open

src/jrd/extds/IscDS.cpp:733–757  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

731}
732
733void IscBlob::open(thread_db* tdbb, Transaction& tran, const dsc& desc, const UCharBuffer* bpb)
734{
735 fb_assert(!m_handle);
736 fb_assert(sizeof(m_blob_id) == desc.dsc_length);
737
738 FB_API_HANDLE& h_db = m_iscConnection.getAPIHandle();
739 FB_API_HANDLE& h_tran = ((IscTransaction&) tran).getAPIHandle();
740
741 memcpy(&m_blob_id, desc.dsc_address, sizeof(m_blob_id));
742
743 FbLocalStatus status;
744 {
745 EngineCallbackGuard guard(tdbb, m_iscConnection, FB_FUNCTION);
746
747 ISC_USHORT bpb_len = bpb ? bpb->getCount() : 0;
748 const ISC_UCHAR* bpb_buff = bpb ? bpb->begin() : NULL;
749
750 m_iscProvider.isc_open_blob2(&status, &h_db, &h_tran, &m_handle, &m_blob_id,
751 bpb_len, bpb_buff);
752 }
753 if (status->getState() & IStatus::STATE_ERRORS) {
754 m_iscConnection.raise(&status, tdbb, "isc_open_blob2");
755 }
756 fb_assert(m_handle);
757}
758
759void IscBlob::create(thread_db* tdbb, Transaction& tran, dsc& desc, const UCharBuffer* bpb)
760{

Callers

nothing calls this directly

Calls 5

isc_open_blob2Method · 0.80
getCountMethod · 0.45
beginMethod · 0.45
getStateMethod · 0.45
raiseMethod · 0.45

Tested by

no test coverage detected