Re: SQL/JSON: functions - Mailing list pgsql-hackers

From Nikita Glukhov
Subject Re: SQL/JSON: functions
Date
Msg-id [email protected]
Whole thread Raw
In response to Re: SQL/JSON: functions  (Pavel Stehule <[email protected]>)
Responses Re: SQL/JSON: functions
Re: SQL/JSON: functions
List pgsql-hackers

Attached 47th version of the patches.

On 21.03.2020 22:38, Pavel Stehule wrote:

On 21. 3. 2020 v 11:07 Nikita Glukhov <[email protected]> wrote:

Attached 46th version of the patches.

On 20.03.2020 22:34, Pavel Stehule wrote:

On 19.03.2020 23:57 Nikita Glukhov <[email protected]> wrote:
Attached 45th version of the patches.

Nodes JsonFormat, JsonReturning, JsonPassing, JsonBehavior were fixed.

On 17.03.2020 21:35, Pavel Stehule wrote:
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.

I don't see reasons for another reduction now. Can be great if you can finalize work what you plan for pg13.

I have removed json[b]_build_object_ext() and json[b]_build_array_ext().

But json[b]_objectagg() and json[b]_agg_strict() are still present.
It seems that removing them requires majors refactoring of the execution
of Aggref and WindowFunc nodes.
I have replaced aggregate function

json[b]_objectagg(key any, val any, absent_on_null boolean, unique_keys boolean)

with three separate functions:

json[b]_object_agg_strict(any, any) 
json[b]_object_agg_unique(any, any) 
json[b]_object_agg_unique_strict(any, any)


This should be more correct than single aggregate with additional parameters.

--
Nikita Glukhov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company
Attachment

pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: Assert() failures during RI checks
Next
From: Nikita Glukhov
Date:
Subject: Re: SQL/JSON: JSON_TABLE