我有以下 plpgsql 函数,该函数在 pg 8.3 及更高版本上运行良好,但我需要将其转换回 pg 8.1 数据库并且我无法缝合以使其正确。
有小费吗?我需要摆脱“返回查询”,因为它尚未在 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';
我该如何翻译这个?