> On Apr 23, 2017, at 11:34 , Guyren Howe <guy...@gmail.com> wrote:
> 
> I’m trying to write a function that manipulates whole rows. It returns the 
> same type as the table it is being applied to, but when I select the function 
> on the rows, I get a single column of row type, rather than separate columns.
> 
> My function looks like:
> 
> CREATE OR REPLACE FUNCTION reporting.formatted_cust_by_state_bold(c 
> reporting_helpers.customers_by_state_ranked)
>  RETURNS reporting_helpers.customers_by_state_ranked
>  LANGUAGE plv8
>  STABLE STRICT COST 1
> AS $function$
> if (c.rank == 1) {
> c['_meta'] = c['meta'] || {}
> c['_meta']['raw'] = c['_meta']['raw'] || {}
> c['_meta']['raw']['spent'] = c['_meta']['raw']['spent'] || {}
> c['_meta']['raw']['spent'] = "<b>" + c.spent + "</b>"
> }
> return c
> $function$
> 
> I do this:
> 
> SELECT formatted_cust_by_state_bold(c) FROM customers_by_state_ranked c
> 
> How do I get the results as a full table?

And, of course, one always solves these things as soon as we ask for help.

SELECT (formatted_cust_by_state_bold(c)).*
   FROM reporting_helpers.customers_by_state_ranked c

is the answer.

Reply via email to