Problem
The default no-incoming-invocations rule classifies a trigger-bound routine as dead. External callers and unresolved/dynamic SQL are not represented by ordinary incoming invocation edges.
Found during the 2026-09-20 FAMIXNGSQL/Moose 13 compatibility audit.
Implementation scope
Provide a conservative SQL-aware dead-code configuration that protects trigger bindings and explicit external entry points, labels remaining results as candidates, and does not offer unsafe automatic database removal.
Implementation PR target: deem0n/FAMIXNGSQL, in the deem0n fork first. Keep this issue separate from the other v3.0.0 fixes. The PR must explain the previous failure, resulting behavior, compatibility implications, and actual validation.
Acceptance criteria and tests
Trigger-bound routine; actual unreferenced candidate; called routine; explicit external root; propagation from live/dead callers; unresolved-call policy; no database/source mutation.
Release
Part of the v3.0.0 milestone. An open PR is not a completed fix; release qualification is tracked separately.
Implementation
#29
Combined qualification: #32. The implementation is available for review; this issue remains open until its integrated release acceptance is verified.
Problem
The default no-incoming-invocations rule classifies a trigger-bound routine as dead. External callers and unresolved/dynamic SQL are not represented by ordinary incoming invocation edges.
Found during the 2026-09-20 FAMIXNGSQL/Moose 13 compatibility audit.
Implementation scope
Provide a conservative SQL-aware dead-code configuration that protects trigger bindings and explicit external entry points, labels remaining results as candidates, and does not offer unsafe automatic database removal.
Implementation PR target: deem0n/FAMIXNGSQL, in the deem0n fork first. Keep this issue separate from the other v3.0.0 fixes. The PR must explain the previous failure, resulting behavior, compatibility implications, and actual validation.
Acceptance criteria and tests
Trigger-bound routine; actual unreferenced candidate; called routine; explicit external root; propagation from live/dead callers; unresolved-call policy; no database/source mutation.
Release
Part of the v3.0.0 milestone. An open PR is not a completed fix; release qualification is tracked separately.
Implementation
#29
Combined qualification: #32. The implementation is available for review; this issue remains open until its integrated release acceptance is verified.