On 12/17/2013 09:10 AM, Bruce Momjian wrote:
> On Wed, Dec 11, 2013 at 02:30:04PM +0000, email@andersonloyola.com.br wrote:
>> The following bug has been logged on the website:
>>
>> Bug reference: 8676
>> Logged by: Anderson Cristian da Silva
>> Email address: email@andersonloyola.com.br
>> PostgreSQL version: 9.3.2
>> Operating system: Centos 6.3 (Final)
>> Description:
>>
>> Failed to convert money to json EX.:
>>
>>
>> postgres=# SELECT to_json(a) FROM (VALUES(1000::money)) a(salario);
>> to_json
>> -----------------------
>> {"salario":$1,000.00}
>> (1 row)
>>
>>
>> postgres=# SELECT to_json(a)->'salario' FROM (VALUES(1000::money))
>> a(salario);
>> ERROR: invalid input syntax for type json
>> DETAIL: Token "$" is invalid.
>> CONTEXT: JSON data, line 1: {"salario":$...
> Well, that is very interesting. It works for integer and text, and it
> works if you ask for the entire relation, but if you ask just for that
> field _and_ it is money, it fails. Sure looks like a bug to me.
Yeah. I'll have a look. In fact this looks like it's possibly a couple
of bugs. The JSON produced by the first query is not valid. It looks
like we might need to force money to text unconditionally.
cheers
andrew