Skip site navigation (1) Skip section navigation (2)

Re: Fwd: Procedural Languages

From: Darren Duncan <darren(at)darrenduncan(dot)net>
To: Michael Nolan <htfoot(at)gmail(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Fwd: Procedural Languages
Date: 2012-05-31 19:31:41
Message-ID: 4FC7C71D.8090606@darrenduncan.net (view raw or flat)
Thread:
Lists: pgsql-general
Michael Nolan wrote:
> On Thu, May 31, 2012 at 2:23 PM, Darren Duncan <darren(at)darrenduncan(dot)net> wrote:
>     Michael Nolan wrote:
> 
>         PL/pgSQL and PL/perlu are the only ones I use.  I use PL/perlu
>         primarily to launch shell scripts from triggers, for example to
>         update an external website when a row in a table has been
>         inserted, deleted or updated.
> 
>     There is also another way to do what you describe that might be more
>     secure.
> 
>     Rather than having the DBMS launch shell scripts directly, instead
>     use LISTEN/NOTIFY messaging, where the trigger posts a message, and
>     you have an ordinary client script listening for them, and the
>     client script launches the shell scripts when it gets a message.
> 
>     This way, you need a persistent client script, but you don't need to
>     invoke the shell in the DBMS ... or use the untrusted version of
>     PL/Perl if that's all it was for.
> 
> Anybody have examples of a persistent client script?

Not a whole one.  But you can make a simple daemon in Perl, either by hand or 
using some CPAN module.

The Postgres-related part though, see 
http://search.cpan.org/dist/DBD-Pg/Pg.pm#pg_notifies for how the client script 
talks to Postgres for this message passing.

Hopefully that'll answer the more interesting part for you.

-- Darren Duncan

In response to

pgsql-general by date

Next:From: Mike ToewsDate: 2012-05-31 20:13:28
Subject: Re: Procedural Languages
Previous:From: Michael NolanDate: 2012-05-31 18:49:23
Subject: Fwd: Procedural Languages

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group