2323 Cumberland Parkway · Suite 201 · Atlanta, GA 30339
"Quality is not an act, it is a habit." -- Aristotle
On Mon, Feb 4, 2013 at 6:49 PM, David Johnston <polobo@yahoo.com> wrote:
Moshe Jacobson wrote
> I'm > unsure of the syntax for passing in values from columns in the database as > the parameters of a set-returning function from which I want to select *.
General form for this in version <= 9.2:
WITH func_call_cte AS ( SELECT func_call(col1, col2, col3) AS func_result FROM table_with_cols_123 ) SELECT (func_result).* FROM func_call_cte;
9.3 will have "LATERAL" and so should be much cleaner.
The general idea is you have to put the function into the select-list so it can see the columns of the table in the FROM. To avoid multiple evaluations of the function you have to treat the output set as a single typed column (func_result) and then in an outer query layer (in this case outside the WITH) you can generically expand the typed column into its component parts.