Обсуждение: BUG #8398: to_json(''::hstore) gives invalid JSON

Поиск
Список
Период
Сортировка

BUG #8398: to_json(''::hstore) gives invalid JSON

От
martin.kevin@gmail.com
Дата:
The following bug has been logged on the website:

Bug reference:      8398
Logged by:          Kevin Martin
Email address:      martin.kevin@gmail.com
PostgreSQL version: 9.3rc1
Operating system:   Ubuntu 10.04
Description:

to_json() returns an invalid JSON value when called on an empty hstore
value. The first two statements below behave as expected, the third (with an
empty hstore) fails:


config_test=# SELECT to_json(q) FROM (SELECT '' AS v) AS q;
 to_json
----------
 {"v":""}
(1 row)


config_test=# SELECT to_json(q) FROM (SELECT ARRAY[]::INT[] AS v) AS q;
 to_json
----------
 {"v":[]}
(1 row)


config_test=# SELECT to_json(q) FROM (SELECT ''::HSTORE AS v) AS q;
 to_json
---------
 {"v":}
(1 row)


The returned JSON will fail to be parsed by a conformant JSON parser.

Re: BUG #8398: to_json(''::hstore) gives invalid JSON

От
Bruce Momjian
Дата:
On Mon, Aug 26, 2013 at 06:00:37PM +0000, martin.kevin@gmail.com wrote:
> The following bug has been logged on the website:
>
> Bug reference:      8398
> Logged by:          Kevin Martin
> Email address:      martin.kevin@gmail.com
> PostgreSQL version: 9.3rc1
> Operating system:   Ubuntu 10.04
> Description:
>
> to_json() returns an invalid JSON value when called on an empty hstore
> value. The first two statements below behave as expected, the third (with an
> empty hstore) fails:
>
>
> config_test=# SELECT to_json(q) FROM (SELECT '' AS v) AS q;
>  to_json
> ----------
>  {"v":""}
> (1 row)
>
>
> config_test=# SELECT to_json(q) FROM (SELECT ARRAY[]::INT[] AS v) AS q;
>  to_json
> ----------
>  {"v":[]}
> (1 row)
>
>
> config_test=# SELECT to_json(q) FROM (SELECT ''::HSTORE AS v) AS q;
>  to_json
> ---------
>  {"v":}
> (1 row)

I see different/better(?) output in git head:

    SELECT to_json(q) FROM (SELECT ''::HSTORE AS v) AS q;
     to_json
    ----------
     {"v":{}}
    (1 row)

--
  Bruce Momjian  <bruce@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + Everyone has their own god. +

Re: BUG #8398: to_json(''::hstore) gives invalid JSON

От
Kevin Martin
Дата:
I cannot confirm the fix right now but if that's the output then I'd say
the issue must have been resolved. As long as that valid, empty object,
JSON comes out instead of an empty value I think this has been handled.


On Fri, Jan 31, 2014 at 6:41 PM, Bruce Momjian <bruce@momjian.us> wrote:

> On Mon, Aug 26, 2013 at 06:00:37PM +0000, martin.kevin@gmail.com wrote:
> > The following bug has been logged on the website:
> >
> > Bug reference:      8398
> > Logged by:          Kevin Martin
> > Email address:      martin.kevin@gmail.com
> > PostgreSQL version: 9.3rc1
> > Operating system:   Ubuntu 10.04
> > Description:
> >
> > to_json() returns an invalid JSON value when called on an empty hstore
> > value. The first two statements below behave as expected, the third
> (with an
> > empty hstore) fails:
> >
> >
> > config_test=# SELECT to_json(q) FROM (SELECT '' AS v) AS q;
> >  to_json
> > ----------
> >  {"v":""}
> > (1 row)
> >
> >
> > config_test=# SELECT to_json(q) FROM (SELECT ARRAY[]::INT[] AS v) AS q;
> >  to_json
> > ----------
> >  {"v":[]}
> > (1 row)
> >
> >
> > config_test=# SELECT to_json(q) FROM (SELECT ''::HSTORE AS v) AS q;
> >  to_json
> > ---------
> >  {"v":}
> > (1 row)
>
> I see different/better(?) output in git head:
>
>         SELECT to_json(q) FROM (SELECT ''::HSTORE AS v) AS q;
>          to_json
>         ----------
>          {"v":{}}
>         (1 row)
>
> --
>   Bruce Momjian  <bruce@momjian.us>        http://momjian.us
>   EnterpriseDB                             http://enterprisedb.com
>
>   + Everyone has their own god. +
>