あなたの試みには2つの変更があります。まず、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 = '[,]'
);