TG_OP and undefined OLD values

Поиск
Список
Период
Сортировка
От Mike Nolan
Тема TG_OP and undefined OLD values
Дата
Msg-id 200508261549.j7QFn9Rf016956@gw.tssi.com
обсуждение исходный текст
Ответы Re: TG_OP and undefined OLD values  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-general
I'm trying to write some code in a trigger that fires on both an insert
and an update.

At one point I need to update a column either on an insert or if the
value of the column has changed.

The following code fails because the OLD value is not defined:

   if TG_OP = ''INSERT''
   or (TG_OP = ''UPDATE'' and NEW.column1 != coalesce(OLD.column1,''--'')) then
      column2 := ''CHANGED'';
   end if;

Shouldn't OLD.column1 not even be evaluated when the other if statement in
the group in parentheses is false or when the earlier if statement is true?

Is there a way around this other than separating the code into two
independent if statements, duplicating the action statements?
--
Mike Nolan

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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: postgres optimizer
Следующее
От: Chris Browne
Дата:
Сообщение: Re: Postgresql replication