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

Поиск
Список
Период
Сортировка
От Melvin Davidson
Тема Re: Way to get at parsed trigger 'WHEN' clause expression?
Дата
Msg-id CANu8FixEa1amXKmFgrsQthrDVGN=Oz7vWh6tMDwpL2DhAZJefQ@mail.gmail.com
обсуждение исходный текст
Ответ на Way to get at parsed trigger 'WHEN' clause expression?  (James Robinson <jlrobins@socialserve.com>)
Список pgsql-general


On Fri, Mar 25, 2016 at 11:10 AM, Igor Neyman <ineyman@perceptron.com> wrote:

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



Actually, it DOES answer the "OP" question. The "Besides" is irrelevant, as with additional length()  & position() sub functions,  just the WHEN clause can be abstracted. I'm just not going to waste my time doing all the work
when I provided a viable solution that does not error out.
--
Melvin Davidson
I reserve the right to fantasize.  Whether or not you
wish to share my fantasy is entirely up to you.

В списке pgsql-general по дате отправления:

Предыдущее
От: Melvin Davidson
Дата:
Сообщение: Re: Way to get at parsed trigger 'WHEN' clause expression?
Следующее
От: James Robinson
Дата:
Сообщение: Re: Way to get at parsed trigger 'WHEN' clause expression?