At this moment EXPLAIN ANALYZE with turned off timing option after execution query that expires trigger prints time of total execution of trigger function:
postgres=# EXPLAIN (ANALYZE, timing false) insert INTO foo values(1000001, ''); QUERY PLAN -------------------------------------------------------------------------- Insert on foo (cost=0.00..0.01 rows=1 width=36) (actual rows=0 loops=1) -> Result (cost=0.00..0.01 rows=1 width=36) (actual rows=1 loops=1) Planning time: 0.038 ms Trigger unique_foo_c1:time=0.000 calls=1 Execution time: 340.766 ms (5 rows)