Unexpected syntax error when using JSON -> in 9.3.5

From: Seamus Abshere <seamus(at)abshere(dot)net>
To: pgsql-general(at)postgresql(dot)org
Subject: Unexpected syntax error when using JSON -> in 9.3.5
Date: 2014-09-23 15:47:39
Message-ID: 5421961B.2060602@abshere.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

hi all,

This part looks correct and expected:

> $ psql foobar
> psql (9.3.5)
> Type "help" for help.
>
> foobar=# select coalesce('{}'::json->'a', 1);
> ERROR: COALESCE types json and integer cannot be matched
> LINE 1: select coalesce('{}'::json->'a', 1);
> ^

but check it out when I use a string instead of an integer:

> foobar=# select coalesce('{}'::json->'a', 'b');
> ERROR: invalid input syntax for type json
> LINE 1: select coalesce('{}'::json->'a', 'b');
> ^
> DETAIL: Token "b" is invalid.
> CONTEXT: JSON data, line 1: b

That seems like the wrong error - shouldn't it be the equiv of "[...]
json and string cannot be matched"?

Thanks,
Seamus

--
Seamus Abshere, SCEA
https://github.com/seamusabshere

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Seamus Abshere 2014-09-23 15:56:15 Will there be a JSON operator like ->> but returning numeric?
Previous Message Adrian Klaver 2014-09-23 14:22:37 Re: Question about Vacuum and Replication failures in 9.3.5