pg 8.3以降でうまく機能する次のplpgsql関数がありますが、それをpg 8.1データベースに変換する必要があり、それを正しくするために縫い合わせることができません。
任意のヒント?「RETURN QUERY」は 8.1 ではまだ導入されていないため、削除する必要があります...
CREATE OR REPLACE FUNCTION specie_children (specie_id INT, self BOOLEAN)
RETURNS SETOF specie AS
$BODY$
DECLARE
r specie%ROWTYPE;
BEGIN
IF self THEN
RETURN QUERY SELECT * FROM specie WHERE specieid = specie_id;
END IF;
FOR r IN SELECT * FROM specie WHERE parent = specie_id
LOOP
RETURN NEXT r;
RETURN QUERY SELECT * FROM specie_children(r.specieid, FALSE);
END LOOP;
RETURN;
END
$BODY$
LANGUAGE 'plpgsql';
これをどのように翻訳しますか?