On Thu, Jun 17, 2010 at 12:52 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Robert Haas <robertmhaas@gmail.com> writes:
>> On Thu, Jun 17, 2010 at 11:25 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>>> I'm
>>> inclined to think that associating #2 with casts might be better,
>>> because clearly casting numerics or bools to JSON ought to act like #2.
>>> If we do it as you suggest then casting text to JSON behaves differently
>>> from casting anything else to JSON.
>
>> I think this is going to turn into a thicket of semantic ambiguity.
>
> True. Maybe it would be better to *not have* casts as such between JSON
> and non-text data types, but make you write something like
> json_literal(numeric)
> to get a JSON literal representing a value. Then json_literal(text)
> would do an unsurprising thing (analogous to quote_literal), and we
> could use the casts between text and json for the behavior where the
> text is interpreted as a valid JSON object.
Yep, I agree. Except you need a way to generate not only JSON objects
that are quoted strings, but also hashes, arrays, booleans, numbers,
and nulls...
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise Postgres Company