Re: unfriendly error when accessing NEW in statement-level trigger

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: unfriendly error when accessing NEW in statement-level trigger
Дата
Msg-id 5519.1327792856@sss.pgh.pa.us
обсуждение исходный текст
Ответ на unfriendly error when accessing NEW in statement-level trigger  (Jan Urbański <wulczer@wulczer.org>)
Список pgsql-hackers
Jan Urbański <wulczer@wulczer.org> writes:
> When you try to use the NEW variable in a statement-level trigger, you get
> ERROR:  record "new" is not assigned yet
> DETAIL:  The tuple structure of a not-yet-assigned record is indeterminate.

> I'm not that familiar with PL/pgSQL code, so I'm not sure how or if this
> should be fixed. From a quick look it seems that the NEW and OLD
> variables could be defined as row variables instead of record, since the
> format of the tuple is known.

Yeah, maybe.  I suspect that that wouldn't have worked when the code was
first designed, but now that we create a separate execution context for
each trigger target table, it should be the case that NEW/OLD have
stable structure.  You'd need to watch out for ALTER TABLE commands
though --- I don't remember exactly what plpgql does about rowtypes
changing underneath it.
        regards, tom lane


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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Second thoughts on CheckIndexCompatible() vs. operator families
Следующее
От: Jeff Janes
Дата:
Сообщение: Re: Group commit, revised