| 76 | } |
| 77 | |
| 78 | bool LocalTableStream::internalGetRecord(thread_db* tdbb) const |
| 79 | { |
| 80 | JRD_reschedule(tdbb); |
| 81 | |
| 82 | const auto request = tdbb->getRequest(); |
| 83 | const auto rpb = &request->req_rpb[m_stream]; |
| 84 | const auto impure = request->getImpure<Impure>(m_impure); |
| 85 | |
| 86 | if (!(impure->irsb_flags & irsb_open)) |
| 87 | { |
| 88 | rpb->rpb_number.setValid(false); |
| 89 | return false; |
| 90 | } |
| 91 | |
| 92 | if (!rpb->rpb_record) |
| 93 | rpb->rpb_record = FB_NEW_POOL(*tdbb->getDefaultPool()) Record(*tdbb->getDefaultPool(), m_format); |
| 94 | |
| 95 | rpb->rpb_number.increment(); |
| 96 | |
| 97 | if (!m_table->getImpure(tdbb, request)->recordBuffer->fetch(rpb->rpb_number.getValue(), rpb->rpb_record)) |
| 98 | { |
| 99 | rpb->rpb_number.setValid(false); |
| 100 | return false; |
| 101 | } |
| 102 | |
| 103 | return true; |
| 104 | } |
| 105 | |
| 106 | bool LocalTableStream::refetchRecord(thread_db* tdbb) const |
| 107 | { |
nothing calls this directly
no test coverage detected