Re: [BUGS] BUG #12070: hstore extension: hstore_to_json_loose produces invalid JSON - Mailing list pgsql-hackers

From Tom Lane
Subject Re: [BUGS] BUG #12070: hstore extension: hstore_to_json_loose produces invalid JSON
Date
Msg-id 15817.1417018789@sss.pgh.pa.us
Whole thread Raw
Responses Re: [BUGS] BUG #12070: hstore extension: hstore_to_json_loose produces invalid JSON  (Andrew Dunstan <andrew@dunslane.net>)
List pgsql-hackers
bouda@edookit.com writes:
> The hstore_to_json_loose(hstore) produces an invalid JSON in the following
> case:

> SELECT hstore_to_json_loose(hstore(ARRAY ['name'], ARRAY ['1.'] :: TEXT
> []))

> Output: {"name": 1.}

> The actual output is indeed incorrect as JSON does not permit `1.` - it must
> be a string.

Yeah.  The problem seems to be the ad-hoc (I'm being polite) code in
hstore_to_json_loose to decide whether a string should be treated as a
number.  It does much more work than it needs to, and fails to have any
tight connection to the JSON syntax rules for numbers.

Offhand, it seems like the nicest fix would be if the core json code
exposed a function that would say whether a string matches the JSON
number syntax.  Does that functionality already exist someplace,
or is it too deeply buried in the JSON parser guts?
        regards, tom lane



pgsql-hackers by date:

Previous
From: Alex Shulgin
Date:
Subject: Re: Follow up to irc on CREATE INDEX vs. maintenance_work_mem on 9.3
Next
From: Andrew Dunstan
Date:
Subject: Re: Compiling C++ extensions on MSVC using scripts in src/tools