| От | Tom Lane |
|---|---|
| Тема | Re: usage of pg_get_functiondef() -- SQL state 42809 |
| Дата | |
| Msg-id | 20116.1332189275@sss.pgh.pa.us обсуждение исходный текст |
| Ответ на | usage of pg_get_functiondef() -- SQL state 42809 (<david.sahagian@emc.com>) |
| Список | pgsql-general |
<david.sahagian@emc.com> writes:
> -- This blows up. -- SQL state: 42809 -- ERROR: "array_agg" is an aggregate function
> select
> TRG.tgname, TFX.proname, pg_get_functiondef(TFX.oid) as fdef
> from
> pg_trigger TRG
> inner join pg_proc TFX on TFX.oid = TRG.tgfoid
> where
> TRG.tgisinternal = true
> and
> pg_get_functiondef(TFX.oid) = 'whatever'
> Can you help me understand why this blows up ?
The second part of the WHERE clause can be evaluated against pg_proc
rows for which pg_get_functiondef() will fail.
An easy workaround would be to use TRG.tgfoid instead, so that the WHERE
clause gets pushed down to the other table. There probably shouldn't be
any entries in pg_trigger for which pg_get_functiondef() will fail.
regards, tom lane
В списке pgsql-general по дате отправления:
Сайт использует файлы cookie для корректной работы и повышения удобства. Нажимая кнопку «Принять» или продолжая пользоваться сайтом, вы соглашаетесь на их использование в соответствии с Политикой в отношении обработки cookie ООО «ППГ», в том числе на передачу данных из файлов cookie сторонним статистическим и рекламным службам. Вы можете управлять настройками cookie через параметры вашего браузера