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

Method internalGetRecord

src/jrd/recsrc/FullTableScan.cpp:135–159  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

133}
134
135bool FullTableScan::internalGetRecord(thread_db* tdbb) const
136{
137 JRD_reschedule(tdbb);
138
139 Request* const request = tdbb->getRequest();
140 record_param* const rpb = &request->req_rpb[m_stream];
141 Impure* const impure = request->getImpure<Impure>(m_impure);
142
143 if (!(impure->irsb_flags & irsb_open))
144 {
145 rpb->rpb_number.setValid(false);
146 return false;
147 }
148
149 const RecordNumber* upper = impure->irsb_upper.isValid() ? &impure->irsb_upper : nullptr;
150
151 if (VIO_next_record(tdbb, rpb, request->req_transaction, request->req_pool, DPM_next_all, upper))
152 {
153 rpb->rpb_number.setValid(true);
154 return true;
155 }
156
157 rpb->rpb_number.setValid(false);
158 return false;
159}
160
161void FullTableScan::getChildren(Array<const RecordSource*>& children) const
162{

Callers

nothing calls this directly

Calls 5

JRD_rescheduleFunction · 0.85
VIO_next_recordFunction · 0.85
setValidMethod · 0.80
getRequestMethod · 0.45
isValidMethod · 0.45

Tested by

no test coverage detected