Re: Cache lookup error when using jsonb, json_build_object and a WITH clause

Поиск
Список
Период
Сортировка
От Andres Freund
Тема Re: Cache lookup error when using jsonb, json_build_object and a WITH clause
Дата
Msg-id 20140509131136.GD30231@awork2.anarazel.de
обсуждение исходный текст
Ответ на Cache lookup error when using jsonb, json_build_object and a WITH clause  (Michael Paquier <michael.paquier@gmail.com>)
Ответы Re: Cache lookup error when using jsonb, json_build_object and a WITH clause  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
Hi,

On 2014-05-09 21:40:07 +0900, Michael Paquier wrote:
> Hi all,
> 
> I found the following error when playing with jsonb and json_build_object:
> =# with jsonb_data as (select * from jsonb_each('{"aa" :
> "po"}'::jsonb)) select json_build_object(key,value) from jsonb_data;
> ERROR:  XX000: cache lookup failed for type 2147483650
> LOCATION:  lookup_type_cache, typcache.c:193
> 
> I would have expected the result to be the same as in the case of json:
> =# with json_data as (select * from json_each('{"aa" : "po"}'::json))
> select json_build_object(key,value) from json_data;
>  json_build_object
> -------------------
>  {"aa" : "po"}
> (1 row)

Whoa. There's two wierd things here:
a) "jsonb" has a typcategory 'C'. Marking a composite type. "json" has  'U'.

b) datum_to_json() thinks it's a good idea to use typcategory to decide  how a type is output. Isn't that pertty
fundamentallyflawed? To  detect composite types it really should look at typtype, now?
 

Greetings,

Andres Freund

-- Andres Freund                       http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training &
Services



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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Cache lookup error when using jsonb, json_build_object and a WITH clause
Следующее
От: Michael Paquier
Дата:
Сообщение: Re: New pg_lsn type doesn't have hash/btree opclasses