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

Method evaluate

src/jrd/btr.cpp:394–424  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

392}
393
394bool IndexCondition::evaluate(Record* record) const
395{
396 if (!m_request || !m_condition)
397 return true;
398
399 const auto orgRequest = m_tdbb->getRequest();
400 m_tdbb->setRequest(m_request);
401
402 m_request->req_rpb[0].rpb_record = record;
403 m_request->req_flags &= ~req_null;
404
405 FbLocalStatus status;
406 bool result = false;
407
408 try
409 {
410 Jrd::ContextPoolHolder context(m_tdbb, m_request->req_pool);
411
412 result = m_condition->execute(m_tdbb, m_request);
413 }
414 catch (const Exception& ex)
415 {
416 ex.stuffException(&status);
417 }
418
419 m_tdbb->setRequest(orgRequest);
420
421 status.check();
422
423 return result;
424}
425
426TriState IndexCondition::check(Record* record, idx_e* errCode)
427{

Callers 2

composeMethod · 0.45
BTR_eval_expressionFunction · 0.45

Calls 7

EVL_exprFunction · 0.85
setRequestMethod · 0.80
getTransactionNumberMethod · 0.80
getRequestMethod · 0.45
executeMethod · 0.45
stuffExceptionMethod · 0.45
checkMethod · 0.45

Tested by

no test coverage detected