Thread: ERROR: type "myrowtype" does not exist

ERROR: type "myrowtype" does not exist

From
Arup Rakshit
Date:
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 ?


Thanks,

Arup Rakshit



Re: ERROR: type "myrowtype" does not exist

From
Adrian Klaver
Date:
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:

https://www.postgresql.org/message-id/2a8ae0b7-1fd4-869a-a25e-d598968898c9%40aklaver.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