ERROR: type "myrowtype" does not exist

Started by Arup Rakshitover 7 years ago2 messagesgeneral
Jump to latest
#1Arup Rakshit
ar@zeit.io

I was reading the json_populate_record function from the official doc https://www.postgresql.org/docs/10/static/functions-json.html#FUNCTIONS-JSON-PROCESSING-TABLE <https://www.postgresql.org/docs/10/static/functions-json.html#FUNCTIONS-JSON-PROCESSING-TABLE&gt;. The doc mentioned examples are giving me errors

psql (11.0, server 10.5)
Type "help" for help.

aruprakshit=# select * from json_populate_record(null::extype, '{"x":"foo", "y":43, "q": true}');
ERROR: type "extype" does not exist
LINE 1: select * from json_populate_record(null::extype, '{"x":"foo"...
^
aruprakshit=# select * from json_populate_record(null::myrowtype, '{"a": 1, "b": ["2", "a b"], "c": {"d": 4, "e": "a b c"}}');
ERROR: type "myrowtype" does not exist
LINE 1: select * from json_populate_record(null::myrowtype, '{"a": 1…

What does null::extype, null::myrowtype mean here ?

Thanks,

Arup Rakshit
ar@zeit.io

#2Adrian Klaver
adrian.klaver@aklaver.com
In reply to: Arup Rakshit (#1)
Re: ERROR: type "myrowtype" does not exist

On 10/26/18 4:54 AM, Arup Rakshit wrote:

I was reading the json_populate_record function from the official doc
https://www.postgresql.org/docs/10/static/functions-json.html#FUNCTIONS-JSON-PROCESSING-TABLE.
The doc mentioned examples are giving me errors

psql (11.0, server 10.5)
Type "help" for help.

aruprakshit=# select * from json_populate_record(null::extype,
'{"x":"foo", "y":43, "q": true}');
ERROR:  type "extype" does not exist
LINE 1: select * from json_populate_record(null::extype, '{"x":"foo"...
                                                 ^
aruprakshit=# select * from json_populate_record(null::myrowtype, '{"a":
1, "b": ["2", "a b"], "c": {"d": 4, "e": "a b c"}}');
ERROR:  type "myrowtype" does not exist
LINE 1: select * from json_populate_record(null::myrowtype, '{"a": 1…

What does null::extype, null::myrowtype mean here ?

See this thread:

/messages/by-id/2a8ae0b7-1fd4-869a-a25e-d598968898c9@aklaver.com

In meantime:

CREATE TABLE public.test_table (
id integer,
username character varying,
fullname character varying
);

test=> \d test_table
Table "public.test_table"
Column | Type | Collation | Nullable | Default
----------+-------------------+-----------+----------+---------
id | integer | | |
username | character varying | | |
fullname | character varying | | |

test=> select * from json_populate_record(null::test_table, '{"id": 1,
"username": "adrian", "fullname": "adrian klaver"}')
;
id | username | fullname
----+----------+---------------
1 | adrian | adrian klaver
(1 row)

So myrowtype is just a placeholder in the docs for a rowtype that you
need to supply.

Thanks,

Arup Rakshit
ar@zeit.io <mailto:ar@zeit.io>

--
Adrian Klaver
adrian.klaver@aklaver.com