Re: (Never?) Kill Postmaster?

Поиск
Список
Период
Сортировка
Искать
От
Christian Schröder
Тема
Re: (Never?) Kill Postmaster?
Дата
Msg-id
47343DDE.5080908@deriva.de
Ответ на
Список
Дерево обсуждения
(Never?) Kill Postmaster? Stefan Schwarzer <stefan.schwarzer@grid.unep.ch>
Re: (Never?) Kill Postmaster? Ow Mun Heng <Ow.Mun.Heng@wdc.com>
Re: (Never?) Kill Postmaster? Christian Schröder <cs@deriva.de>
Re: (Never?) Kill Postmaster? "Pavel Stehule" <pavel.stehule@gmail.com>
Re: (Never?) Kill Postmaster? "Pavel Stehule" <pavel.stehule@gmail.com>
Re: (Never?) Kill Postmaster? Tommy Gildseth <tommy.gildseth@usit.uio.no>
Re: (Never?) Kill Postmaster? Bill Moran <wmoran@potentialtech.com>
Re: (Never?) Kill Postmaster? "Vyacheslav Kalinin" <vka@mgcp.com>
Re: (Never?) Kill Postmaster? "Michael Harris" <michael.harris@ericsson.com>
Re: (Never?) Kill Postmaster? Tom Lane <tgl@sss.pgh.pa.us>
Re: (Never?) Kill Postmaster? Christian Schröder <cs@deriva.de>
Re: (Never?) Kill Postmaster? Tom Lane <tgl@sss.pgh.pa.us>
Re: (Never?) Kill Postmaster? Christian Schröder <cs@deriva.de>
Re: (Never?) Kill Postmaster? "Scott Marlowe" <scott.marlowe@gmail.com>
Re: (Never?) Kill Postmaster? Tom Lane <tgl@sss.pgh.pa.us>
Re: (Never?) Kill Postmaster? Christian Schröder <cs@deriva.de>
Re: (Never?) Kill Postmaster? Tom Lane <tgl@sss.pgh.pa.us>
Re: (Never?) Kill Postmaster? Christian Schröder <cs@deriva.de>
Re: (Never?) Kill Postmaster? Alvaro Herrera <alvherre@commandprompt.com>
Re: (Never?) Kill Postmaster? Christian Schröder <cs@deriva.de>
Re: (Never?) Kill Postmaster? Alvaro Herrera <alvherre@commandprompt.com>
Re: (Never?) Kill Postmaster? Christian Schröder <cs@deriva.de>
Re: (Never?) Kill Postmaster? Tom Lane <tgl@sss.pgh.pa.us>
Re: (Never?) Kill Postmaster? Christian Schröder <cs@deriva.de>
Re: (Never?) Kill Postmaster? Tom Lane <tgl@sss.pgh.pa.us>
Re: (Never?) Kill Postmaster? Christian Schröder <cs@deriva.de>
Re: (Never?) Kill Postmaster? Tom Lane <tgl@sss.pgh.pa.us>
Re: (Never?) Kill Postmaster? Christian Schröder <cs@deriva.de>
Re: (Never?) Kill Postmaster? Tom Lane <tgl@sss.pgh.pa.us>
Re: (Never?) Kill Postmaster? Christian Schröder <cs@deriva.de>
Re: (Never?) Kill Postmaster? Tom Lane <tgl@sss.pgh.pa.us>
Re: (Never?) Kill Postmaster? Christian Schröder <cs@deriva.de>
Re: (Never?) Kill Postmaster? Martijn van Oosterhout <kleptog@svana.org>
Re: (Never?) Kill Postmaster? Tom Lane <tgl@sss.pgh.pa.us>
Re: (Never?) Kill Postmaster? Christian Schröder <cs@deriva.de>
Tom Lane wrote:
> control has already returned from the kernel.  What I think is that the
> perl stuff your session has done has included some action that changed
> the condition of the backend process ... exactly what, I have no idea.
> Can you show us the plperl functions that were used in these sessions?
>   
Considering the skill level of the users I don't think that they 
explicitly used any perl function. So the only remaining perl stuff are 
the triggers that I mentioned earlier. There are two triggers in the 
database to which the users were connected (see 
http://archives.postgresql.org/pgsql-general/2007-11/msg00245.php). 
There are three more triggers in other databases which might have an impact:

=============================
        if ($_TD->{argc} != 1) {
                elog(ERROR, 'do_fast_export_log() needs the table\'s 
primary key as sole argument, multiple keys are not yet supported.');
        }

        my $table = $_TD->{table_name};
        my $id = $_TD->{old}{$_TD->{args}[0]};

        while (my ($col, $value) = each %{$_TD->{old}}) {
                my $oldVal = $_TD->{old}{$col};
                my $newVal = $_TD->{new}{$col};

                $oldVal =~ s/'/''/g;
                $oldVal =~ s/\t/\\\\t/g;
                $newVal =~ s/'/''/g;
                $newVal =~ s/\t/\\\\t/g;

                if ($oldVal ne $newVal) {
                        my $data = "$id\t$table\t$col\t$oldVal\t$newVal";
                        my $query = spi_exec_query("insert into 
fast_export(data) values(E'$data')");
                }
        }

        spi_exec_query("notify fast_export");
        return;
=============================
    elog(ERROR, 'store_session_user needs the field name as argument.')
        if $_TD->{argc} < 1;

    my ($field) = @{$_TD->{args}};

    elog(ERROR, "Field '$field' does not exist in target table.\n")
        unless exists $_TD->{new}{$field};

    my $query = spi_exec_query('SELECT session_user', 1);
    $_TD->{new}{$field} = $query->{rows}[0]{session_user};
    return 'MODIFY';
=============================
    if ($_TD->{argc} > 0) {
        foreach (@{$_TD->{args}}) {
            $_TD->{new}{$_} = $_TD->{old}{$_}
                if exists $_TD->{old}{$_};
        }
        return 'MODIFY';
    }
    else {
        return;
    }
=============================

Regards,
    Christian

-- 
Deriva GmbH                         Tel.: +49 551 489500-42
Financial IT and Consulting         Fax:  +49 551 489500-91
Hans-Böckler-Straße 2                  http://www.deriva.de
D-37079 Göttingen

Deriva CA Certificate: http://www.deriva.de/deriva-ca.cer

В списке pgsql-general по дате отправления
От: Pavel Stehule
Дата:
Сообщение: Re: configure using libxml
От: rihad
Дата:
FAQ