Re: proposal: jsonb_populate_array - Mailing list pgsql-hackers

From Pavel Stehule
Subject Re: proposal: jsonb_populate_array
Date
Msg-id CAFj8pRDvwrB+jMaY-qXYL75Pk+mNQUSyNhAQ5EfqYeV2uHW83g@mail.gmail.com
Whole thread Raw
In response to Re: proposal: jsonb_populate_array  (jian he <jian.universality@gmail.com>)
List 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

regards

Pavel

pgsql-hackers by date:

Previous
From: Vik Fearing
Date:
Subject: Re: [PATCH] Add function to_oct
Next
From: Michael Meskes
Date:
Subject: Re: ECPG Semantic Analysis