_sky_ |
---|
Добрый день
Как-то можно не прибегая к RETURNS TABLE вернуть SETOF таблицы + некое расчетное значение? Структура таблицы время от времени может меняться, и не хочется каждый раз переписывать весь набор полей в TABLE. |
если хочется авна ложкой -- то можно вернуть запись, составленную из рефкурсора и значения. держать до окончания фетча курсора транзакцию открытой с клиента (что заведомое овно).
В АДО есть nextRecordset -- там можно просто мультиселект вернуть и вычитать nextRecordset-ом, не держа открытой транзакции.
ну и модные типы, типа джейсона и/или xml, позволяют вернуть запакованный результат, не держа открытой с клиента транзакции. но распаковывать придется на клиенте.
и ещё как-то изъебхитриться наверняка можно (если придумать как pg-SQL курсор открыть with hold из хранимки) -- но всё заведомо хуже, чем строго описанный тип. (RETURNS TABLE)