Re: json casts

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: json casts
Дата
Msg-id 18174.1401224412@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: json casts  (Andrew Dunstan <andrew@dunslane.net>)
Ответы Re: json casts
Re: json casts
Список pgsql-hackers
Andrew Dunstan <andrew@dunslane.net> writes:
> On 05/27/2014 03:57 PM, Heikki Linnakangas wrote:
>> On 05/27/2014 10:53 PM, Andrew Dunstan wrote:
>>> I've been on the receiving end of a couple of mumbles about the fact
>>> that the JSON rendering code ignores casts of builtin types to JSON.
>>> This was originally done as an optimization to avoid doing cache lookups
>>> for casts for things we knew quite well how to turn into JSON values
>>> (unlike, say, hstore). However, there is at least one concrete case
>>> where this has some possibly undesirable consequences, namely
>>> timestamps. Many JSON processors, especially JavaScript/ECMAScript
>>> processors, require timestamp values to be in ISO 8601 format, with a
>>> 'T' between the date part and the time part, and thus they barf on the
>>> output we produce for such values.

>> I don't understand what ignoring casts of builtin types to JSON means. 
>> Can you give an example?

> See src/backend/utils/adt/json.c:json_categorize_type() lines 1280-1300.

> When rendering some value as part of a json string, if a cast exists 
> from the data type to json, then the cast function is used to render the 
> json instead of the type's normal output function, but only if it's not 
> a builtin type.

How exactly would disabling that code have any effect on timestamp
rendering?  There's no cast to json from timestamps (nor any other
builtin type, except jsonb).

I'd be inclined to think a more useful answer to this issue would be to
make json.c special-case timestamps, as it already does for numerics.
        regards, tom lane



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Heikki Linnakangas
Дата:
Сообщение: Re: Race condition within _bt_findinsertloc()? (new page split code)
Следующее
От: Peter Eisentraut
Дата:
Сообщение: Re: 9.5 commit fest schedule