CASE statement and SETOF values

Поиск
Список
Период
Сортировка
От Christian Schoenebeck
Тема CASE statement and SETOF values
Дата
Msg-id 200607242327.57474.cschoene@stud.hs-heilbronn.de
обсуждение исходный текст
Ответы Re: CASE statement and SETOF values
Список pgsql-general
HI!

Consider the following server side function:

CREATE FUNCTION my_function(int4) RETURNS SETOF int8 AS
$BODY$
SELECT
CASE WHEN (some_condition)
     THEN (
         SELECT ... -- arbitrary select (returning row(s) of int8 values)
     )
     ELSE (
         SELECT ... -- arbitrary select (returning row(s) of int8 values)
     )
END
$BODY$
LANGUAGE 'sql' VOLATILE;

This function works fine if one of the two inner SELECT statements returns
exactly one result (one row), but fails whenever one of them returns more
than one result / rows.

What is the reason? I mean the function is declared as returning "SETOF int8",
so why does it expect a scalar?

CU
Christian

В списке pgsql-general по дате отправления:

Предыдущее
От: "Roderick A. Anderson"
Дата:
Сообщение: Does a GRANT on a table cascade/implied to its SEQUENCES
Следующее
От: Stephan Szabo
Дата:
Сообщение: Re: CASE statement and SETOF values