Обсуждение: Running a PL/pgSQL function
I'm startled that I've never done this before, but... I have a PL/
pgSQL function that takes no arguments, returns VOID, and has a bunch
of side effects on the database. The correct way of invoking this
function is:
SELECT my_func();
... yes? Thanks; it seems to work fine, but using SELECT here is
causing some part of my brain to scream "counter-intuitive."
On Monday 11 August 2008 4:24:17 pm Christophe wrote:
> I'm startled that I've never done this before, but... I have a PL/
> pgSQL function that takes no arguments, returns VOID, and has a bunch
> of side effects on the database. The correct way of invoking this
> function is:
>
> SELECT my_func();
>
> ... yes? Thanks; it seems to work fine, but using SELECT here is
> causing some part of my brain to scream "counter-intuitive."
Similar to doing:
test=# SELECT 1+1;
?column?
----------
2
(1 row)
--
Adrian Klaver
aklaver@comcast.net
Christophe <xof@thebuild.com> writes:
> I'm startled that I've never done this before, but... I have a PL/
> pgSQL function that takes no arguments, returns VOID, and has a bunch
> of side effects on the database. The correct way of invoking this
> function is:
> SELECT my_func();
> ... yes? Thanks; it seems to work fine, but using SELECT here is
> causing some part of my brain to scream "counter-intuitive."
Yeah, it is a little weird but it works fine. We treat VOID as a
more-or-less-real datatype that has only one value, an empty string...
regards, tom lane
On Mon, Aug 11, 2008 at 6:03 PM, Adrian Klaver <aklaver@comcast.net> wrote: > On Monday 11 August 2008 4:24:17 pm Christophe wrote: >> I'm startled that I've never done this before, but... I have a PL/ >> pgSQL function that takes no arguments, returns VOID, and has a bunch >> of side effects on the database. The correct way of invoking this >> function is: >> >> SELECT my_func(); >> >> ... yes? Thanks; it seems to work fine, but using SELECT here is >> causing some part of my brain to scream "counter-intuitive." > > Similar to doing: > > test=# SELECT 1+1; > ?column? > ---------- > 2 Hey, it beats select 1+1 from dual!