2010-08-18 3 views
1

두 개의 인수를 사용하고 SETOF 결과를 반환하는 함수를 작성했습니다. 함수 foo (parentId BIGINT, childId BIGINT) AS RETURNS SETOF 줄을 CREATE다른 SETOF 함수의 결과를 반환하는 SETOF 반환 함수의 성능?

...

나는 그것을 간단하게 호출 할 수 있도록이 기능이 "래퍼"를 작성하려합니다

:

CREATE FUNCTION foo_parent(parentId bigint) 
RETURNS SETOF bar AS 
... 
BEGIN 
    RETURN QUERY SELECT * FROM foo(parentId, NULL); 
END; 

CREATE FUNCTION foo_child(childId bigint) 
RETURNS SETOF bar AS 
... 
BEGIN 
... look up parent ID ... 
RETURN QUERY SELECT * FROM foo(parentId, childId); 
END; 

FOO_CHILD()이 호출 될 때 FOO()의 결과를 직접 반환 할만큼 스마트 한 포스트 그레스입니까? 아니면 FOO_CHILD()이 실행되는 동안 FOO()에서 모든 결과를 복사하고 그 결과를 반환합니까?

나는 pgplsql이 꼬리 - 호출 최적화를 할 것인지 묻고 있다고 생각한다!

편집 : Postgres 8.2를 사용하고 있습니다.

답변

0

plpgsql은 결과가 반환되기 전에 항상 구체화하므로 no입니다.

관련 문제