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

Method internalGetRecord

src/jrd/recsrc/VirtualTableScan.cpp:74–100  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

72}
73
74bool VirtualTableScan::internalGetRecord(thread_db* tdbb) const
75{
76 JRD_reschedule(tdbb);
77
78 Request* const request = tdbb->getRequest();
79 record_param* const rpb = &request->req_rpb[m_stream];
80 Impure* const impure = request->getImpure<Impure>(m_impure);
81
82 if (!(impure->irsb_flags & irsb_open))
83 {
84 rpb->rpb_number.setValid(false);
85 return false;
86 }
87
88 rpb->rpb_runtime_flags &= ~RPB_CLEAR_FLAGS;
89
90 rpb->rpb_number.increment();
91
92 if (retrieveRecord(tdbb, m_relation, rpb->rpb_number.getValue(), rpb->rpb_record))
93 {
94 rpb->rpb_number.setValid(true);
95 return true;
96 }
97
98 rpb->rpb_number.setValid(false);
99 return false;
100}
101
102bool VirtualTableScan::refetchRecord(thread_db* /*tdbb*/) const
103{

Callers

nothing calls this directly

Calls 5

JRD_rescheduleFunction · 0.85
setValidMethod · 0.80
getRequestMethod · 0.45
incrementMethod · 0.45
getValueMethod · 0.45

Tested by

no test coverage detected