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

Function VIO_record

src/jrd/vio.cpp:3855–3895  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3853
3854
3855Record* VIO_record(thread_db* tdbb, record_param* rpb, const Format* format, MemoryPool* pool)
3856{
3857/**************************************
3858 *
3859 * V I O _ r e c o r d
3860 *
3861 **************************************
3862 *
3863 * Functional description
3864 * Allocate a record block big enough for a given format.
3865 *
3866 **************************************/
3867 SET_TDBB(tdbb);
3868
3869#ifdef VIO_DEBUG
3870 jrd_rel* relation = rpb->rpb_relation;
3871 VIO_trace(DEBUG_TRACE,
3872 "VIO_record (rel_id %u, record_param %" QUADFORMAT"d, format %d, pool %p)\n",
3873 relation ? relation->rel_id : 0, rpb->rpb_number.getValue(), format ? format->fmt_version : 0,
3874 (void*) pool);
3875#endif
3876
3877 // If format wasn't given, look one up
3878
3879 if (!format)
3880 format = MET_format(tdbb, rpb->rpb_relation, rpb->rpb_format_number);
3881
3882 Record* record = rpb->rpb_record;
3883
3884 if (!record)
3885 {
3886 if (!pool)
3887 pool = rpb->rpb_relation->rel_pool;
3888
3889 record = rpb->rpb_record = FB_NEW_POOL(*pool) Record(*pool, format);
3890 }
3891
3892 record->reset(format);
3893
3894 return record;
3895}
3896
3897
3898bool VIO_refetch_record(thread_db* tdbb, record_param* rpb, jrd_tra* transaction,

Callers 15

eraseMethod · 0.85
modifyMethod · 0.85
storeMethod · 0.85
VIO_dataFunction · 0.85
VIO_writelockFunction · 0.85
delete_recordFunction · 0.85
get_undo_dataFunction · 0.85
insertRecordMethod · 0.85
updateRecordMethod · 0.85
deleteRecordMethod · 0.85
internalOpenMethod · 0.85
internalOpenMethod · 0.85

Calls 5

SET_TDBBFunction · 0.85
VIO_traceFunction · 0.85
RecordClass · 0.70
getValueMethod · 0.45
resetMethod · 0.45

Tested by

no test coverage detected