Returning RECORD from PGSQL without custom type?

Поиск
Список
Период
Сортировка
От D. Dante Lorenso
Тема Returning RECORD from PGSQL without custom type?
Дата
Msg-id 48255092.5070006@lorenso.com
обсуждение исходный текст
Ответы Re: Returning RECORD from PGSQL without custom type?
Re: Returning RECORD from PGSQL without custom type?
Список pgsql-general
Instead of doing this:

   CREATE OR REPLACE FUNCTION "my_custom_func" (in_value bigint)
   RETURNS SETOF record AS
   $body$
   ...
   $body$
   LANGUAGE 'plpgsql' VOLATILE;

I'd like to be able to do this:

   CREATE OR REPLACE FUNCTION "my_custom_func" (in_value bigint)
   RETURNS SETOF (col1name BIGINT, col2name TEXT, ...) AS
   $body$
   ...
   $body$
   LANGUAGE 'plpgsql' VOLATILE;

Because this is the only function that will be returning that TYPE and I
don't want to have to create a separate type definition just for the
return results of this function.

Maybe even more cool would be if the OUT record was already defined so
that I could simply select into that record to send our new rows:

    RETURN NEXT OUT;

    OUT.col1name := 12345;
    RETURN NEXT OUT;

    SELECT 12345, 'sample'
    INTO OUT.col1name, OUT.col2name;
    RETURN NEXT OUT;

Just as you've allowed me to define the IN variable names without
needing the legacy 'ALIAS $1 ...' format, I'd like to name the returned
record column names and types in a simple declaration like I show above.

Does this feature request make sense to everyone?  It would make
programming set returning record functions a lot easier.

-- Dante

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

Предыдущее
От: Ivan Sergio Borgonovo
Дата:
Сообщение: choiche of function language was: Re: dynamic procedure call
Следующее
От: Gerald Quimpo
Дата:
Сообщение: Re: Extract only numbers from a varchar column