почему функции postgres возвращают результат в один столбец?

У меня есть простая функция PostgreSQL, которая, по моему мнению, должна возвращать значения в отдельные столбцы -115 и 101000005458E6258..., но она возвращает один столбец, в котором два значения разделены запятой -115,101000005458E6258.... Что не так с моей функцией?

CREATE OR REPLACE FUNCTION public.get_direction()
RETURNS TABLE(direction integer, geom geometry)             
AS $$
BEGIN
RETURN QUERY SELECT 
    heading-lag(heading) over (order by time) AS direction, a.geom AS geom 
    FROM public.mytable a 
    WHERE reg='125123' 
    GROUP BY heading, a.geom , a.time;
END; $$
LANGUAGE 'plpgsql';

я вызываю функцию

SELECT public.get_direction();

Спасибо.


person markus    schedule 25.06.2020    source источник
comment
И вы должны называть это так: select * from get_direction();.   -  person freakish    schedule 25.06.2020
comment
Это табличная функция, поэтому ее следует использовать как таблицу в операторе SQL.   -  person Laurenz Albe    schedule 25.06.2020
comment
Ошибка новичка. Спасибо за помощь   -  person markus    schedule 26.06.2020


Ответы (1)


Если вы хотите получить результат в виде набора столбцов, вам нужно:

SELECT * FROM public.get_direction();
person GMB    schedule 25.06.2020