Thread: json_populate_recordset
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
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.htm l
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
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