Re: Using PERFORM in plpgsql throws compile errors

From: Gaetano Mendola <mendola(at)bigfoot(dot)com>
To: Christian Armeanu <chris(at)vote4ad(dot)com>
Subject: Re: Using PERFORM in plpgsql throws compile errors
Date: 2004-09-27 23:17:49
Message-ID: 41589F9D.7010103@bigfoot.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice

Christian Armeanu wrote:
> Hi,
>
> I am trying to create a really simple pl/pgsql based function to simply
> return true or false depending on a query result ...
>
> As I do not need the query result row, I want to use PERFORM to dump the
> resulting data ... So, here's my attempt:
>
> CREATE OR REPLACE FUNCTION islicensed(int8, int8) RETURNS bool AS '
> DECLARE
> pID ALIAS FOR $1;
> aID ALIAS FOR $2;
> BEGIN
> PERFORM SELECT * FROM transactions x INNER JOIN tx_items i ON(x.id =
> i.tx_id) where i.archive_id=aID and x.status=\'valid\' and x.person_id=pID;
> RETURN FOUND;
> END;
> ' LANGUAGE 'plpgsql';
>
>
> However, even so the creation statement succeeds, any attempt to call
> this function throws a compilation error:
>
> ERROR: syntax error at or near "SELECT" at character 9
> CONTEXT: PL/pgSQL function "islicensed" line 5 at perform
>
> Why this? As I understand the docs, this is how it should work!?!
>
> Any help is highly appreciated.
>
> Oh, PostgreSQL 7.4.1 running on RH Linux ES 3.0 (not from RH rpm, but
> compiled from sources) ...

Remove the SELECT on the PERFORM statement:

PERFORM * FROM ....

Regards
Gaetano Mendola

In response to

Browse pgsql-novice by date

  From Date Subject
Next Message D. Duccini 2004-09-28 00:14:09 date_trunc'd timestamp index possible?
Previous Message Mark Stosberg 2004-09-27 18:06:09 Re: max_connections not changing