Re: SQL/JSON: functions

Поиск
Список
Период
Сортировка
От Nikita Glukhov
Тема Re: SQL/JSON: functions
Дата
Msg-id ccf59aac-94d4-9b5e-7f2d-dfae4b66b786@postgrespro.ru
обсуждение исходный текст
Ответ на Re: SQL/JSON: functions  (Pavel Stehule <pavel.stehule@gmail.com>)
Ответы Re: SQL/JSON: functions  (Pavel Stehule <pavel.stehule@gmail.com>)
Список pgsql-hackers
Attached 44th version of the patches.

On 12.03.2020 16:41, Pavel Stehule wrote:

On 12.03.2020 00:09 Nikita Glukhov wrote:
Attached 43rd version of the patches.

The previous patch #4 ("Add function formats") was removed.
Instead, introduced new executor node JsonCtorExpr which is used to wrap
SQL/JSON constructor function calls (FuncExpr, Aggref, WindowFunc).

Also, JsonIsPredicate node began to be used as executor node.
This helped to remove unnecessary json[b]_is_valid() user functions.

It looks very well - all tests passed, code looks well.

Now, when there are special nodes, then the introduction of COERCE_INTERNAL_CAST is not necessary, and it is only my one and last objection again this patch's set.

I have removed patch #3 with COERCE_INTERNAL_CAST too.

Coercions in JsonValueExpr in JsonCtorExpr, which were previously hidden with
COERCE_INTERNAL_CAST and which were outputted as RETURNING or FORMAT JSON
clauses, now moved into separate expressions.


User functions json[b]_build_object_ext() and json[b]_build_array_ext() also 
can be easily removed.   But it seems harder to remove new aggregate functions 
json[b]_objectagg() and json[b]_agg_strict(), because they can't be called 
directly from JsonCtorExpr node.


The support for json type in jsonpath also seems to be immature, so I will try 
to remove it in the next iteration.
-- 
Nikita Glukhov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company
Вложения

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Thomas Munro
Дата:
Сообщение: Re: Parallel leader process info in EXPLAIN
Следующее
От: Mark Dilger
Дата:
Сообщение: Re: Adding missing object access hook invocations