Issue with PERFORM
От | Yury Peskin |
---|---|
Тема | Issue with PERFORM |
Дата | |
Msg-id | web-4682210@cyclesoftware.com обсуждение исходный текст |
Ответы |
Re: Issue with PERFORM
|
Список | pgsql-novice |
Hello, Environment: Postgresql: 9.1.5 OS: CentOS 64bit 6.3(final) Problem: 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 SQL statement "SELECT NM_create_friend($1, friend_id)" PL/pgSQL function "nm_create_friends" line 9 at PERFORM and here's the actual function: CREATE FUNCTION nm_create_friends(user_id uuid, friend_ids text[]) RETURNS void LANGUAGE plpgsql AS $_$ DECLARE friend_id text; BEGIN FOREACH friend_id in array $2 LOOP PERFORM NM_create_friend($1, friend_id); <--- this is the error line END LOOP; END; $_$; Just in case here's the function that gets called: 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. Any ideas on how to fix this issue? Yury Peskin
В списке pgsql-novice по дате отправления: