Re: Issue with PERFORM - Mailing list pgsql-novice

From Kevin Grittner
Subject Re: Issue with PERFORM
Date
Msg-id 5058803C020000250004A4B2@gw.wicourts.gov
Whole thread Raw
In response to Issue with PERFORM  ("Yury Peskin" <ypeskin@cycle-inc.com>)
Responses Re: Issue with PERFORM  (Bartosz Dmytrak <bdmytrak@gmail.com>)
List pgsql-novice
"Yury Peskin" <ypeskin@cycle-inc.com> wrote:

> ERROR:  query has no destination for result data
> HINT:  If you want to discard the results of a SELECT, use
> PERFORM instead.
> CONTEXT:  PL/pgSQL function "nm_create_friend" line 3 at
> SQL statement

> CREATE FUNCTION nm_create_friend(user_id uuid, friend_id
> text) RETURNS void
>     LANGUAGE plpgsql
>     AS $_$
> BEGIN
> SELECT f.friend_id
> FROM
> friends AS f
> WHERE f.user_id = $1 AND f.friend_id = $2;
> IF NOT FOUND THEN
> INSERT INTO friends (user_id, friend_id) values($1,$2);
> END IF;
> END;
> $_$;

> For some reason, psql thinks that PERFORM
> NM_create_friend($1, friend_id); function is using a
> SELECT.

No, it thinks that within the nm_create_friend() function there is a
SELECT which isn't assigning the value to anything.  And it's right.
It subsequently shows you where that function is being called from,
but that's not as relevant.

> Any ideas on how to fix this issue?

The HINT says it all.

-Kevin


pgsql-novice by date:

Previous
From: "Yury Peskin"
Date:
Subject: Issue with PERFORM
Next
From: Tom Browder
Date:
Subject: Upgrade and Single User