Re: Fwd: row_to_json() with numerical indices in stead of associative indices

From: Tjibbe <tjibbe(at)rijpma(dot)org>
To: Michael Paquier <michael(dot)paquier(at)gmail(dot)com>
Cc: PostgreSQL mailing lists <pgsql-general(at)postgresql(dot)org>
Subject: Re: Fwd: row_to_json() with numerical indices in stead of associative indices
Date: 2013-12-01 11:39:04
Message-ID: CAF_dx11kfLs7xXvhZ9uSEC4+B=EgHvaAY0odtpX7uxEYQkMj0A@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

I had tried something similar, but it is not possible because:

ERROR: PL/pgSQL functions cannot accept type record

So it would be nice that in version postgresql 9.4 this parameter is added
to the function row_to_json.

Maybe RECORD as INPUT parameter is allowed in other procedural languages
like PL/phyton.

--
+31 6 29401726
tjibbe(at)rijpma(dot)org
Jacobusstraat 185
3012 JM Rotterdam

On 1 December 2013 06:43, Michael Paquier <michael(dot)paquier(at)gmail(dot)com> wrote:

> On Sat, Nov 30, 2013 at 11:48 PM, Tjibbe <tjibbe(at)rijpma(dot)org> wrote:
> > Hello there,
> >
> > Is it possible to add an parameter for the function row_to_json()? So
> > you can choose for:
> >
> > numerical indices: [1, true, "string", null]
> > associative indices: ["f1":1,"f2": true, "f3":"string","f4": null]
> >
> > The this extra parameter can save bandwidth between the
> > webserver(postgresql/php) and client(javascript).
> >
> > Now i'm doing it like this:
> >
> > CREATE FUNCTION to_num_json(_in json) RETURNS json AS $$
> > DECLARE
> > _pair RECORD;
> > _arr json[];
> > BEGIN
> > FOR _pair IN SELECT * FROM json_each(_in) LOOP
> > _arr := _arr || _pair.value;
> > END LOOP;
> > RETURN to_json(_arr);
> > END
> > $$ language plpgsql;
> >
> > SELECT to_num_json(
> > row_to_json((5, TRUE, 'string', NULL))
> > );
> You could rename your function to_num_json to row_to_json and trick
> search_path to include it in your client depending on the schema where
> the new function is as two functions with the same name but different
> arguments can live together. IMO, you are right to do that with
> plpgsql and json_each.
>
> Regards,
> --
> Michael
>

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Janek Sendrowski 2013-12-01 21:41:07 Searching for suiting index
Previous Message Karsten Hilbert 2013-12-01 08:22:52 Re: [GENERAL] pg_upgrade ?deficiency