我正在尝试创建一个函数来找到交集tsrange
,但我无法让它工作:
CREATE AGGREGATE intersection ( tsrange ) (
SFUNC = *,
STYPE = tsrange
)
您的尝试有两个修改。首先,我认为您不能使用运算符作为 SFUNC,因此您需要定义一个命名函数来执行交集并使用它。
CREATE or REPLACE FUNCTION int_tsrange(a tsrange, b tsrange)
returns tsrange language plpgsql as
'begin return a * b; end';
其次,范围的默认值是空范围——因此交集将始终为空。您需要将范围初始化为无限范围'[,]'
开始聚合。聚合定义如下所示:
CREATE AGGREGATE intersection ( tsrange ) (
SFUNC = int_tsrange,
STYPE = tsrange,
INITCOND = '[,]'
);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)