Здравствуйте, имею функцию, пробовал возращаемое значение table и собственного типа getSensorType.
Возращает не так:
time_t | value
-------+-------
105 | 117
2054 | 676 , а так:
getsensorvalues
-----------------
(105,117)
(2054,676)
При вызове этой функции из программы результат выдает не как пары значений 105, 117, а как одну строку "(105,117)"
Подскажите где я ошибся, пожалуйста.
CREATE OR REPLACE FUNCTION getSensorValues(firstTime integer, lastTime integer, step integer, insensorid integer)
returns setof getSensorType as --table(otime_t integer, ovalue float8) as
$$
declare
firstTime integer := $1;
counter integer := 0;
localStep integer := $3/10 + 1;
getSens getSensorType;
occ record;
begin
while firstTime < $2 + 1
loop
for occ in select time_t, value from sensors
where sensorsid = $4 and time_t = (select min(time_t) from sensors
where sensorsid = $4 and time_t >= (firstTime - (localStep/2) + (localStep*counter))
and time_t < (firstTime + (localStep/2) + (localStep*counter)))
loop
getSens.otime_t := occ.time_t;
getSens.ovalue := occ.value;
return next getSens;
end loop;
firstTime := firstTime + $3;
if (getSens.otime_t is NULL) then
if (getSens.ovalue is NULL) then
if (counter < 9) then
firstTime := firstTime - $3;
counter := counter + 1;
end if;
end if;
end if;
end loop;
return;
end;
$$
language 'plpgsql';
------------------------------------------------
create type getSensorType as
(
otime_t integer,
ovalue float8
);