Set-returning functions only allowed if written in language 'sql'
От | Daniel Migowski |
---|---|
Тема | Set-returning functions only allowed if written in language 'sql' |
Дата | |
Msg-id | 4990C472.7020700@ikoffice.de обсуждение исходный текст |
Ответы |
Re: Set-returning functions only allowed if written in
language 'sql'
Re: Set-returning functions only allowed if written in language 'sql' |
Список | pgsql-bugs |
Hello dear PostgreSQL developers, I noticed the following strange behaviour with set-returning functions. If sets are allowed seems to depend on the language the function is written in, what makes conpletely no sense to me. See the following functions x() and y(). x() is written in 'sql' and works, y() is written is plpgsql and fails. Any reasons for this I do not realize? With best regards, Daniel Migowski ---------------------------- CREATE FUNCTION x() RETURNS SETOF int4 AS $$ SELECT 1 UNION SELECT 2 $$ LANGUAGE 'sql'; SELECT x(); -- fine with two result rows. CREATE FUNCTION y() RETURNS SETOF int4 AS $$ BEGIN RETURN NEXT 1; RETURN NEXT 2; END $$ LANGUAGE 'plpgsql'; SELECT y(); -- fails with: FEHLER: Funktion mit Mengenergebnis in einem Zusammenhang aufgerufen, der keine Mengenergebnisse verarbeiten kann SQL Status:0A000 Kontext:PL/pgSQL function "y" line 2 at RETURN NEXT
В списке pgsql-bugs по дате отправления: