Re: Transactional issue that begs for explanation

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Transactional issue that begs for explanation
Дата
Msg-id 5703.1284171784@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Transactional issue that begs for explanation  (Mladen Gogala <mladen.gogala@vmsinfo.com>)
Ответы Re: Transactional issue that begs for explanation  (Mladen Gogala <mladen.gogala@vmsinfo.com>)
Список pgsql-novice
Mladen Gogala <mladen.gogala@vmsinfo.com> writes:
> To make the story more interesting, I added the following:

> CREATE or REPLACE FUNCTION logtrg() RETURNS trigger AS $$
> open(STDOUT,">>/tmp/logfile") or die("Cannot open log:$!\n");
> $key=$_TD->{old}{key};
> $val=$_TD->{old}{val};
> print "Firing on: $key $val\n";
> return;
> $$ LANGUAGE plperlu;

I suspect you're shooting yourself in the foot by repeatedly re-opening
the backend's stdout and not fflush'ing anywhere along the line: somehow
the data going to the log file is getting mangled.  I don't see any
strange behavior here when using a less dangerous logging technique,
such as

CREATE or REPLACE FUNCTION logtrg() RETURNS trigger AS $$
$key=$_TD->{old}{key};
$val=$_TD->{old}{val};
elog(NOTICE, "Firing on: $key $val\n");
return;
$$ LANGUAGE plperlu;

(Actually, I don't see anything funny when using your original version
of the function, either; but it's probably dependent on a lot of
platform-specific libc details exactly how you got that result.)

            regards, tom lane

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

Предыдущее
От: Thomas Kellerer
Дата:
Сообщение: Re: PostgreSQL article online - PDF
Следующее
От: Mladen Gogala
Дата:
Сообщение: Re: Transactional issue that begs for explanation