| 1686 | |
| 1687 | |
| 1688 | static 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 | |
| 1734 | void AutoCacheRequest::cacheRequest() |
no test coverage detected