Re: Way to get at parsed trigger 'WHEN' clause expression?

From: Igor Neyman <ineyman(at)perceptron(dot)com>
To: Melvin Davidson <melvin6925(at)gmail(dot)com>, James Robinson <jlrobins(at)socialserve(dot)com>
Cc: "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org>
Subject: Re: Way to get at parsed trigger 'WHEN' clause expression?
Date: 2016-03-25 15:10:09
Message-ID: A76B25F2823E954C9E45E32FA49D70ECCD687E3A@mail.corp.perceptron.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Did you mean something like

SELECT substring(pg_get_triggerdef(tg.oid, TRUE) FROM position('WHEN' in pg_get_triggerdef(tg.oid, TRUE))) AS when_cond
FROM pg_trigger tg WHERE tg.tgname = 'your_trigger_name';

--
Melvin Davidson
I reserve the right to fantasize. Whether or not you
wish to share my fantasy is entirely up to you. [http://us.i1.yimg.com/us.yimg.com/i/mesg/tsmileys2/01.gif]

This doesn’t answer OP question.
Besides this query gets you not only “WHEN” clause but also whatever follows it, for instance “EXECUTE PROCEDURE…”

As for “pg_get_expr(pg_node_tree, relation_oid)” – looks like it doesn’t work with pg_trigger, because as a second parameter (Var) it expects relation_oid, and relation could have multiple triggers, so pg_get_expr() wouldn’t know which trigger’s tgqual you want to decompile.

Regards,
Igor Neyman

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Melvin Davidson 2016-03-25 15:17:05 Re: Way to get at parsed trigger 'WHEN' clause expression?
Previous Message Melvin Davidson 2016-03-25 14:18:21 Re: Way to get at parsed trigger 'WHEN' clause expression?