\df jsonb_populate_record
List of functions
Schema | Name | Result data type | Argument data
types | Type
------------+-----------------------+------------------+---------------------+------
pg_catalog | jsonb_populate_record | anyelement | anyelement,
jsonb | func
(1 row)
manual:
> anyelement Indicates that a function accepts any data type.
> For the “simple” family of polymorphic types, the matching and deduction rules work like this:
> Each position (either argument or return value) declared as anyelement is allowed to have any specific actual data
type,but in any given call they must all be the same actual type.
So jsonb_populate_record signature can handle cases like
jsonb_populate_record(anyarray, jsonb)? obviously this is a cast, it
may fail.
also if input is anyarray, so the output anyarray will have the same
base type as input anyarray.