2009-09-28 2 views
0

매우 유용한 이름을 가진 함수가 있습니다 : has_useful_state(param). 이 레일을 어디로 여기에, 어떤 속도에서PostgreSQL 8에서 함수 이름을 out 매개 변수로 다시 사용할 수 있습니까?

CREATE OR REPLACE FUNCTION set_of_useful_things(param TEXT, OUT has_useful_state) RETURNS SETOF RECORD AS $_$ 
BEGIN 
    SELECT some_key, COUNT(has_useful_state(some_key)) FROM .... 

:

나는 이러한 결과의 SETOF RECORD의 반환 될 두 번째 기능을 가지고있다.

SELECT some_key, COUNT($1 (some_key)) FROM .... 

분명히 함수 이름을가로 취급되고있다 : has_useful_state 모두 반환 열 이름과 그것을 제공하는 기능에 대한 지금까지 가장 좋은 이름입니다 기능은이 같은 오류와 함께 컴파일에 실패 별칭 ... 그래서 이것을 피하고 어떻게 유용한 함수와 열 이름을 유지할 수 있습니까?

답변

1

같은 이름으로 두 개의 변수를 사용하는 것이 좋습니다. 그러나 대부분의 경우 서로를 어둡게 만드는 습관이 있습니다.

요약하면, 그 중 하나를 변경해야합니다 (내 생각에 매개 변수를 희생한다는 것입니다).

+0

정말요? 이 '프로그래밍 언어'에는 컨텍스트 종속 심볼 테이블의 개념조차 없다는 뜻입니까? WTF? 이것은 C 매크로를 독점적으로 프로그래밍하는 것과 같습니다. 찌꺼기. 다른 사람이 해결책을 찾기를 바랍니다. 그러나 그렇지 않다면 나는 다시 너의 것을 깨울 것입니다. –

+0

글쎄요, 별칭 처리의 매크로 확장 성을 암시하는 '$ 1'이 아닙니까? –

+0

당신은 얼마나 많은 네임 스페이스가 있는지 직접 볼 수 있습니다 ;-) http://git.postgresql.org/gitweb?p=postgresql.git;a=blob;f=src/pl/plpgsql/src/gram.y; h = af398f28ba43c2c32e13f584d1a0942b68f598e3; hb = HEAD # l377 –

관련 문제