Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Получение результата из множественного вызова функции, возвращающей таблицу. / 2 сообщений из 2, страница 1 из 1
22.09.2017, 21:08
    #39525150
deadka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение результата из множественного вызова функции, возвращающей таблицу.
Доброго времени суток.

Исходные данные: есть таблица t(id int primary key).
Есть функция f(id int), которая возвращает таблицу из двух полей, количество возвращаемых строк неизвестно.

Нужно получить все таблицы, которые возвращает функция f, объединенные в одну таблицу.

Вижу два варианта:

1) SELECT t.id, m.f1, m.f2 FROM t JOIN f(t.id) AS m ON 1 = 1;

2) хранимка, в которой курсором пробегаем по таблице t, нужное количество раз вызываем f и добавляем результат к возвращаемому массиву.

В 9.6 join-овый отработал быстрее.

Нет ли идей/инфы насчет best pratices подобной задачи?

Заранее спасибо.
...
Рейтинг: 0 / 0
22.09.2017, 21:24
    #39525155
vyegorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение результата из множественного вызова функции, возвращающей таблицу.
deadka,

Мне кажется LATERAL джойн с функцией (ваш #1 вариант) тут уместнее.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Получение результата из множественного вызова функции, возвращающей таблицу. / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]