Re: how to concat/concat_ws all fields without braces - Mailing list pgsql-general

From Pavel Stehule
Subject Re: how to concat/concat_ws all fields without braces
Date
Msg-id CAFj8pRAgaZqqQN-GD3a4RtWqgLOt_D84w5fE27dmZn7n=vNBoA@mail.gmail.com
Whole thread Raw
In response to Re: how to concat/concat_ws all fields without braces  (Jean Louis <bugs@gnu.support>)
List pgsql-general


so 15. 6. 2019 v 16:20 odesílatel Jean Louis <bugs@gnu.support> napsal:
Dear Pavel,

Ahoj.

* Pavel Stehule <pavel.stehule@gmail.com> [2019-06-15 11:37]:
> you can write own function that will do what you want
>
> create or replace function rec_concat_fields(record, text)
> returns text as $$
>   begin
>     return string_agg(value, '|') from json_each_text(row_to_json($1));
>   end
> $$ language plpgsql;
>
> postgres=# select rec_concat_fields(foo.*, '*') from foo;
> ┌───────────────────┐
> │ rec_concat_fields │
> ╞═══════════════════╡
> │ ahoj|svete        │
> └───────────────────┘
> (1 row)
>

I have tried that one, not working quite;

create or replace function concat_fields(record, text)
returns text as $$
  begin
    return string_agg(value, ' ') from json_each_text(row_to_json($1));
  end
$$ language plpgsql;
rcdbusiness$# ERROR:  PL/pgSQL functions cannot accept type record

depends on Postgres version. I have 12, but probably it should to work with Postgres 10, 11

Pavel


Jean

pgsql-general by date:

Previous
From: Jean Louis
Date:
Subject: Re: how to concat/concat_ws all fields without braces
Next
From: Peter Geoghegan
Date:
Subject: Re: checkpoints taking much longer than expected