or replace function generate_range(start integer, dim integer)
returns integer[] as $res$
BEGIN
return (select * from generate_series(start, start+dim));
END
$res$ LANGUAGE plpgsql;
usage: generate_range(5, 3) => 5, 6, 7
разные варианты пробовал, гуглил, но все равно не получается, может кто-то подсказать?
return (select array_agg(i) from generate_series(start, start+dim) AS i); Либо нужно в массив собрать
я бы не использовал функцию, а комбинацию ARRAY и generate_series если функция необходима, то лучше sql: CREATE OR REPLACE FUNCTION generate_range (INT, INT) RETURNS INT[] LANGUAGE SQL IMMUTABLE AS $func$ SELECT ARRAY (SELECT generate_series ($1, $2)); $func$;
Обсуждают сегодня