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

Function trigger_failure

src/jrd/exe.cpp:1688–1731  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1686
1687
1688static void trigger_failure(thread_db* tdbb, Request* trigger)
1689{
1690/**************************************
1691 *
1692 * t r i g g e r _ f a i l u r e
1693 *
1694 **************************************
1695 *
1696 * Functional description
1697 * Trigger failed, report error.
1698 *
1699 **************************************/
1700
1701 SET_TDBB(tdbb);
1702
1703 if (trigger->req_flags & req_leave)
1704 {
1705 trigger->req_flags &= ~req_leave;
1706 string msg;
1707 MET_trigger_msg(tdbb, msg, trigger->getStatement()->triggerName, trigger->req_label);
1708 if (msg.hasData())
1709 {
1710 if (trigger->getStatement()->flags & Statement::FLAG_SYS_TRIGGER)
1711 {
1712 ISC_STATUS code = PAR_symbol_to_gdscode(msg);
1713 if (code)
1714 {
1715 ERR_post(Arg::Gds(isc_integ_fail) << Arg::Num(trigger->req_label) <<
1716 Arg::Gds(code));
1717 }
1718 }
1719 ERR_post(Arg::Gds(isc_integ_fail) << Arg::Num(trigger->req_label) <<
1720 Arg::Gds(isc_random) << Arg::Str(msg));
1721 }
1722 else
1723 {
1724 ERR_post(Arg::Gds(isc_integ_fail) << Arg::Num(trigger->req_label));
1725 }
1726 }
1727 else
1728 {
1729 ERR_punt();
1730 }
1731}
1732
1733
1734void AutoCacheRequest::cacheRequest()

Callers 1

EXE_execute_triggersFunction · 0.85

Calls 9

SET_TDBBFunction · 0.85
PAR_symbol_to_gdscodeFunction · 0.85
GdsClass · 0.85
NumClass · 0.85
StrClass · 0.85
ERR_puntFunction · 0.85
ERR_postFunction · 0.70
getStatementMethod · 0.45
hasDataMethod · 0.45

Tested by

no test coverage detected