PostgreSQL: функции, возвращающие множество, не допускаются в выражениях DEFAULT - PullRequest
0 голосов
/ 08 февраля 2019

Кто-нибудь знает, возможно ли использовать функцию generate_series в качестве значения по умолчанию для функции?

current_date работает нормально, но также хотел бы указать диапазон значений по умолчанию, но получить возвращаемые набором функции являютсяне разрешать в выражениях по умолчанию.В этом случае было бы неплохо вставить значение по умолчанию, чтобы не запускать неограниченный запрос.Я полагаю, вы могли бы добавить логику в самой функции ???

CREATE OR REPLACE FUNCTION foo(
        start_date date DEFAULT current_date
    ,   end_date date DEFAULT (current_date - interval '60 days')
    ,   sites int[] DEFAULT (generate_series(1, 10, 1))
    ,   details bool DEFAULT false
) RETURNS text
AS $$
select 'foo'
$$ LANGUAGE SQL;
select foo();

1 Ответ

0 голосов
/ 08 февраля 2019

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

https://www.postgresql.org/docs/9.3/functions-range.html

'[1,10]'::int4range

Но я почти уверен, что это не приведет к тому, что вы, похоже, хотите, например, (1,2,3,2,1) - если я правильно это понимаю.

...