Re: [PATCH] Generalized JSON output functions - Mailing list pgsql-hackers

From Ryan Pedela
Subject Re: [PATCH] Generalized JSON output functions
Date
Msg-id CACu89FSg3LO+7Z7s9nNAKNTgsjfAYeucWjci7YCMuFOLOj-OKg@mail.gmail.com
Whole thread Raw
In response to Re: [PATCH] Generalized JSON output functions  ("Shulgin, Oleksandr" <oleksandr.shulgin@zalando.de>)
Responses Re: [PATCH] Generalized JSON output functions
Re: [PATCH] Generalized JSON output functions
List pgsql-hackers
On Mon, Jul 13, 2015 at 1:30 AM, Shulgin, Oleksandr <oleksandr.shulgin@zalando.de> wrote:

To reiterate: for my problem, that is escaping numerics that can potentially overflow[1] under ECMAScript standard, I want to be able to override the code that outputs the numeric converted to string.  There is no way in current implementation to do that *at all*, short of copying all the code involved in producing JSON output and changing it at certain points.  One could try re-parsing JSON instead, but that doesn't actually solve the issue, because type information is lost forever at that point.

I had the exact same problem with Node.js and client-side Javascript. That is why I wrote json-bignum [1] for Node.js. There is a bower version [2] as well. The only caveat is that it is slower than the native JSON functions, but I am happy to receive PRs to improve performance.


As far as large numbers in JSON, I think Postgres is doing the right thing and should not be changed. It is Javascript that is stupid here, and I don't think it is wise to add something to core just because one client does stupid things with large numbers. In addition, ES7 is introducing "value types" which will hopefully solve the large number problem in Javascript.

The random whitespace issue is valid in my opinion and should be fixed.

Thanks,
Ryan Pedela

pgsql-hackers by date:

Previous
From: Fujii Masao
Date:
Subject: Re: Default Roles (was: Additional role attributes)
Next
From: Sawada Masahiko
Date:
Subject: Re: Freeze avoidance of very large table.