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 tji...@rijpma.org Jacobusstraat 185 3012 JM Rotterdam On 1 December 2013 06:43, Michael Paquier <michael.paqu...@gmail.com> wrote: > On Sat, Nov 30, 2013 at 11:48 PM, Tjibbe <tji...@rijpma.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 >