0
我有一個非常有用的名字:has_useful_state(param)
。如何在PostgreSQL 8中重新使用函數名作爲輸出參數?
我有一個會返回一個SETOF RECORD
這幫結果的第二個功能:
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 ....
無論如何,這裏是通向哪裏出軌。該函數,其中has_useful_state
是迄今爲止都返回列名和提供它的功能最好的名字,但沒有對這樣的錯誤進行編譯:顯然,函數名被視爲
SELECT some_key, COUNT($1 (some_key)) FROM ....
別名...所以我怎麼能避免這一點,仍然保持我有用的功能和列名稱?
真的嗎?你的意思是說......'編程語言'甚至沒有上下文相關符號表的概念? WTF?這就像試圖用C語言專門編程一樣。垃圾。 我希望別人有一個解決方案,但如果沒有,我會回來撞你的。 – 2009-09-28 20:58:40
嗯,是的,不是'$ 1'暗示了別名處理的宏觀擴展性質? – 2009-09-28 21:03:55
你可以看到自己有多少名字空間;-) http://git.postgresql.org/gitweb?p=postgresql.git;a=blob;f=src/pl/plpgsql/src/gram.y; H = af398f28ba43c2c32e13f584d1a0942b68f598e3; HB = HEAD#L377 – 2009-09-28 21:14:28