Operator Right Operand Type Description Example Example Result-> int: Get JSON array element (indexed from zero, negative integers count from the end)
select * from json_to_record('{"a":1,"b":[1,2,3],"c":[1,2,3],"e":"bar","r": {"a": 123, "b": "a b c"}}') as x(a int, b text, c int[], d text, r myrowtype)
the expected result is :
a | b | c | d | r ---+---------+---------+---+--------------- 1 | [1,2,3] | {1,2,3} | | (123,"a b c")
But in my cluster PostgreSQL 9.5.9 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-11), 64-bit
I have this result :
ERROR: type "myrowtype" does not exist LINE 1: ...a b c"}}') as x(a int, b text, c int[], d text, r myrowtype)... ^
i think that query should be as follows to have the expected result:
select * from json_to_record('{"a":1,"b":[1,2,3],"c":"{4,5,6}","e":"bar","r": {"a": 123, "b": "a b c"}}') as x(a int, b text, c int[], d text, r json)
a | b | c | d | r ---+---------+---------+---+-------------------------- 1 | [1,2,3] | {4,5,6} | | {"a": 123, "b": "a b c"} (1 row)