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

Method getData

src/jrd/recsrc/MergeJoin.cpp:451–465  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

449}
450
451UCHAR* MergeJoin::getData(thread_db* /*tdbb*/, MergeFile* mfb, SLONG record) const
452{
453 fb_assert(record >= 0 && record < (SLONG) mfb->mfb_equal_records);
454
455 const ULONG merge_block = record / mfb->mfb_blocking_factor;
456 if (merge_block != mfb->mfb_current_block)
457 {
458 Sort::readBlock(mfb->mfb_space, mfb->mfb_block_size * merge_block,
459 mfb->mfb_block_data, mfb->mfb_block_size);
460 mfb->mfb_current_block = merge_block;
461 }
462
463 const ULONG merge_offset = (record % mfb->mfb_blocking_factor) * mfb->mfb_record_size;
464 return mfb->mfb_block_data + merge_offset;
465}
466
467SLONG MergeJoin::getRecordByIndex(thread_db* tdbb, FB_SIZE_T index) const
468{

Callers 2

assignParamsMethod · 0.45
getRecordByIndexMethod · 0.45

Calls

no outgoing calls

Tested by

no test coverage detected