You can use the following to list the triggers and see what functions they
call. Then you can check pg_proc to see how TRUNCATE is used in prosrc.
SELECT c.relname,
t.tgname,
p.proname AS function_called,
t.tgconstraint AS is_constraint,
CASE WHEN t.tgconstrrelid > 0
THEN (SELECT relname
FROM pg_class
WHERE oid = t.tgconstrrelid)
ELSE ''
END AS constr_tbl,
t.tgenabled
FROM pg_trigger t
INNER JOIN pg_proc p ON ( p.oid = t.tgfoid)
INNER JOIN pg_class c ON (c.oid = t.tgrelid)
WHERE tgname NOT LIKE 'pg_%'
AND tgname NOT LIKE 'RI_%' -- < comment out to see constraints
-- AND t.tgenabled = FALSE
ORDER BY 1;
On Tue, Jun 2, 2015 at 5:31 AM, Albe Laurenz <[email protected]>
wrote:
> Andreas Ulbrich wrote:
> > I'm in a handle for a trigger for TRUNCATE. Is it possible to find out
> > whether the TRUNCATE TABLE ist called with CASCADE?
>
> I don't think there is.
>
> But you can find out the table where the trigger is defined and examine
> if any foreign key constraints are referring to it.
>
> If yes, then the trigger was called with CASCADE.
> If no, it might have been called either way, but the effect would be the
> same.
>
> Yours,
> Laurenz Albe
>
> --
> Sent via pgsql-general mailing list ([email protected])
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general
>
--
*Melvin Davidson*
I reserve the right to fantasize. Whether or not you
wish to share my fantasy is entirely up to you.