Re: proposal: jsonb_populate_array
От | Pavel Stehule |
---|---|
Тема | Re: proposal: jsonb_populate_array |
Дата | |
Msg-id | CAFj8pRDvwrB+jMaY-qXYL75Pk+mNQUSyNhAQ5EfqYeV2uHW83g@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: proposal: jsonb_populate_array (jian he <jian.universality@gmail.com>) |
Список | pgsql-hackers |
út 15. 8. 2023 v 5:12 odesílatel jian he <jian.universality@gmail.com> napsal:
\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.
It fails (what is expected - else be too strange to use function in name "record" for arrays)
(2023-08-15 07:57:40) postgres=# select jsonb_populate_record(null::varchar[], '[1,2,3]');
ERROR: first argument of jsonb_populate_record must be a row type
ERROR: first argument of jsonb_populate_record must be a row type
regards
Pavel
В списке pgsql-hackers по дате отправления: