這是plpgsql function that returns multiple columns gets called multiple times的變體。但是,我希望找到解決我特定情況的方案。多次調用數組參數的設置返回功能
我有一個函數,它用給定的參數處理一個行數組,並返回一組行+一個新列。
CREATE OR REPLACE foo(data data[], parameter int) RETURNS SETOF enhanceddata AS
...
該功能適用於測試案例只有1組數據
SELECT * FROM foo((SELECT ARRAY_AGG(data) FROM datatable GROUP BY dataid WHERE dataid = something), 1)
,但我想,使其與多組數據的工作,而沒有經過dataid
的功能。我嘗試了一些變化:
SELECT dataid, (foo(ARRAY_AGG(data)),1).*
FROM dataset
WHERE dataid = something -- only testing on 1
GROUP BY dataid
但是該函數被調用一次每列。
和'enhanceddata'是複合類型,我相信?其定義對於您的問題至關重要。因爲您描述的問題僅適用於返回多個*列*(不適用於多行)的情況。 – 2014-10-22 18:20:52