0
クエリの結果を関数に渡していますが、この関数はSETOFまたはTABLE(両方とも試したもの)を返します。最終的な結果は匿名のレコードなので、関数の型に戻すことはできません。 (または任意の特定のタイプ)。私は匿名レコードの複数の行を取得します(正しい情報を保持します)。クエリー結果(ポストグル)の関数を呼び出すときに型にキャスト戻る
CREATE TYPE some_type AS (
foo_id BIGINT,
row_date DATE
);
CREATE TABLE foo
(
foo_id BIGINT,
foo_range DATERANGE NOT NULL
);
CREATE OR REPLACE function prep (in_foo_id BIGINT
in_foo_range)
RETURNS SETOF some_type AS $$
SELECT in_foo_id as foo_id,
generate_series(lower(in_foo_range), upper(in_foo_range)-1, interval '1d')::date as row_date
$$ LANGUAGE sql IMMUTABLE;
select prep(a.foo_id,a.foo_range) from (select * from foo limit 2) a