Re: Do you know a json_populate_record alternative method to create a ROW with a named field notation?
| От | Tom Lane |
|---|---|
| Тема | Re: Do you know a json_populate_record alternative method to create a ROW with a named field notation? |
| Дата | |
| Msg-id | 16489.1646592898@sss.pgh.pa.us обсуждение исходный текст |
| Ответ на | Do you know a json_populate_record alternative method to create a ROW with a named field notation? (Stéphane Klein <contact@stephane-klein.info>) |
| Список | pgsql-general |
=?UTF-8?Q?St=C3=A9phane_Klein?= <contact@stephane-klein.info> writes: > **Question:** do you know a method like json_populate_record ( > https://www.postgresql.org/docs/13/functions-json.html), which allows > creating a `ROW` with named field notation without using a json format? You mean you want to give the field names explicitly in the expression? The closest thing I can think of is to make a constructor function and invoke it with named-argument notation: regression=# CREATE TYPE contact AS ( regression(# firstname VARCHAR, regression(# lastname VARCHAR regression(# ); CREATE TYPE regression=# create function make_contact(firstname varchar, lastname varchar) regression-# returns contact as 'select row(firstname, lastname)::contact' regression-# language sql; CREATE FUNCTION regression=# select make_contact(firstname => 'John', lastname => 'Doe'); make_contact -------------- (John,Doe) (1 row) A bit tedious to set up, but it would have some advantages, eg you could provide default values. regards, tom lane
В списке pgsql-general по дате отправления: