Вернуть SETOF + value

_sky_
Дата: 10.02.2015 09:27:50
Добрый день

Как-то можно не прибегая к RETURNS TABLE вернуть SETOF таблицы + некое расчетное значение? Структура таблицы время от времени может меняться, и не хочется каждый раз переписывать весь набор полей в TABLE.
думаецца
Дата: 10.02.2015 09:54:46
_sky_
Добрый день

Как-то можно не прибегая к RETURNS TABLE вернуть SETOF таблицы + некое расчетное значение? Структура таблицы время от времени может меняться, и не хочется каждый раз переписывать весь набор полей в TABLE.
если хочется авна ложкой -- то можно вернуть запись, составленную из рефкурсора и значения. держать до окончания фетча курсора транзакцию открытой с клиента (что заведомое овно).

В АДО есть nextRecordset -- там можно просто мультиселект вернуть и вычитать nextRecordset-ом, не держа открытой транзакции.

ну и модные типы, типа джейсона и/или xml, позволяют вернуть запакованный результат, не держа открытой с клиента транзакции. но распаковывать придется на клиенте.

и ещё как-то изъебхитриться наверняка можно (если придумать как pg-SQL курсор открыть with hold из хранимки) -- но всё заведомо хуже, чем строго описанный тип. (RETURNS TABLE)