有人知道是否可以将generate_series函数用作函数的默认值吗?
current_date可以正常工作,但默认情况下还希望指定一个值范围,但默认表达式中不允许使用set-returning函数。在这种情况下,最好插入一个默认值,以不触发一些无界查询。我想您可以在函数本身中添加逻辑?
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();
答案 0 :(得分:0)
为什么不使用范围函数?
https://www.postgresql.org/docs/9.3/functions-range.html
'[1,10]'::int4range
但是我很确定,如果我正确地解释了这一点,不会导致出现您想要的东西,例如(1,2,3,2,1)。