поступить. У меня есть таблица с туристическими объектами и их географическими координатами. Я хочу отправлять из приложения запрос с координатами пользователя и получать все столбцы таблицы + еще столбец расстояний от пользователя до этой точки.
Вопрос в типе возвращаемых данных. Как я понял, надо возвращать тип Table, но тогда приходится вручную перечислять каждый столбец типа
RETURNS TABLE (prop1 text, prop2 text,...)
Это неудобно.
А тип SETOF не подходит, потому что мне к имеющейся таблице надо добавлять отдельный столбец расстояний (который я создаю через географические функции).
Есть ли какой-то простой способ не выписывать явно каждый столбец, но иметь возможность добавить функциональные столбцы и JOIN-ы?
Кодогенерация? ;)
- Returns setof record , а читать ее выхлоп курсором чтобы отвязаться от типов - если нужны таки типы, придётся перечислять колонки да и возвращать таблицу - возможно заворачивать в функцию просто не обязательно, если у вас просто одну колонку расстояния докинуть надо к выборке
Наверное, такое я не делал еще, у меня ограниченные знания PostgreSQL
Спасибо, попробую разобраться! Особенно интересен третий пункт. Да, допустим, надо вернуть всю таблицу и еще столбец расстояний до точки. Это разве не через функцию делается, через которую я подаю координаты точки?
Да не обязательно, что-то типа такого псведо-кодом SELECT *, distance(t.point, arg_point) FROM t
Понял, спасибо!
Обсуждают сегодня