Thread: json_populate_recordset

json_populate_recordset

From
Adrian Klaver
Date:
 From here:

https://www.postgresql.org/docs/10/static/functions-json.html

select * from json_populate_record(null::myrowtype, '{"a": 1, "b": ["2", 
"a b"], "c": {"d": 4, "e": "a b c"}}')

What is the null::myrowtype doing?


Thanks,
-- 
Adrian Klaver
adrian.klaver@aklaver.com


Re: json_populate_recordset

From
Pavel Stehule
Date:


2018-06-07 18:51 GMT+02:00 Adrian Klaver <adrian.klaver@aklaver.com>:
From here:

https://www.postgresql.org/docs/10/static/functions-json.html

select * from json_populate_record(null::myrowtype, '{"a": 1, "b": ["2", "a b"], "c": {"d": 4, "e": "a b c"}}')

What is the null::myrowtype doing?

this function uses polymorphic parameters - its some like

create or replace function fx(in anyelement, json) returns anyelement ..

output polymorphic value requires minimally one input polymorphic value for type specification. Postgres has not possibility to pass only datatype - so pattern null:type is used instead.

Regards

Pavel
 


Thanks,
--
Adrian Klaver
adrian.klaver@aklaver.com


Re: json_populate_recordset

From
Adrian Klaver
Date:
On 06/07/2018 09:56 AM, Pavel Stehule wrote:
> 
> 
> 2018-06-07 18:51 GMT+02:00 Adrian Klaver <adrian.klaver@aklaver.com 
> <mailto:adrian.klaver@aklaver.com>>:
> 
>      From here:
> 
>     https://www.postgresql.org/docs/10/static/functions-json.html
>     <https://www.postgresql.org/docs/10/static/functions-json.html>
> 
>     select * from json_populate_record(null::myrowtype, '{"a": 1, "b":
>     ["2", "a b"], "c": {"d": 4, "e": "a b c"}}')
> 
>     What is the null::myrowtype doing?
> 
> 
> this function uses polymorphic parameters - its some like
> 
> create or replace function fx(in anyelement, json) returns anyelement ..
> 
> output polymorphic value requires minimally one input polymorphic value 
> for type specification. Postgres has not possibility to pass only 
> datatype - so pattern null:type is used instead.

Alright, so it is bootstrapping a polymorphic type off null. Thanks.

> 
> Regards
> 
> Pavel
> 
> 
> 
>     Thanks,
>     -- 
>     Adrian Klaver
>     adrian.klaver@aklaver.com <mailto:adrian.klaver@aklaver.com>
> 
> 


-- 
Adrian Klaver
adrian.klaver@aklaver.com