strange problem with plpgsql

Поиск
Список
Период
Сортировка
От Richard NAGY
Тема strange problem with plpgsql
Дата
Msg-id 3C21DEFE.C11D1A0F@presenceweb.com
обсуждение исходный текст
Список pgsql-general
hello,

I have a strange problem with a plpgsql function. Here is the code :

create function tg_survey_au() returns opaque as '
begin
  if new.dateexpire != old.dateexpire or new.email != old.email then
     insert into survey_log values (
        current_timestamp,
        ''update'',
        new.idxsurvey,
        new.dateexpire,
        new.email
     );
   end if;
 return new;
end;
' language 'plpgsql';

create trigger tg_survey_au after update on survey for each row execute procedure tg_survey_au();
 

The problem is about the 'or' in the if statement. I have tested the if statement with just one condition. One with dateexpire and one with email. It works very well. Then I have joined the two conditions in the if statement with an 'or' like here in the code. Then, I have an insert in survey_log just when the email change, not if the dateexpire change! It seems that the 'or' does not work.

Any idea ?

Note : The tests have been tested on a postgresql version 7.0.2 on a RedHat Linux 6.2 machine.
 

--
Richard NAGY
Presenceweb / Nameshield
 

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

Предыдущее
От: Martijn van Oosterhout
Дата:
Сообщение: Re: Operation eq with varchar
Следующее
От: Dmitry Panov
Дата:
Сообщение: indices usage