Re: general purpose array_sort

From: Junwang Zhao <zhjwpku(at)gmail(dot)com>
To: Aleksander Alekseev <aleksander(at)timescale(dot)com>
Cc: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>, jian he <jian(dot)universality(at)gmail(dot)com>, Amit Langote <amitlangote09(at)gmail(dot)com>, "andreas(at)proxel(dot)se" <andreas(at)proxel(dot)se>, Robert Haas <robertmhaas(at)gmail(dot)com>
Subject: Re: general purpose array_sort
Date: 2024-10-26 04:20:30
Message-ID: CAEG8a3KztaRQT9X8UfHACJ1Qszw93guLpGJG0pRHS6-OYoCR3Q@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Fri, Oct 25, 2024 at 8:02 PM Junwang Zhao <zhjwpku(at)gmail(dot)com> wrote:
>
> On Fri, Oct 25, 2024 at 1:19 AM Aleksander Alekseev
> <aleksander(at)timescale(dot)com> wrote:
> >
> > Hi,
> >
> > > I can accept this outcome though an optional three-valued boolean sort order (ascending and descending only) I'd argue is worth keeping. null value placement too I guess, three-valued boolean (nulls_first).
> >
> > Perhaps these optional arguments deserve separate discussions. I
> > suggest merging something everyone agrees on first. This will simplify
> > the review process and allow us to deliver value to the users quickly.
> > Arguments like `reverse => true` and `nulls_first => true` can always
> > be implemented and added as separate patches.
>
> As this patch uses the tuplesort infrastructure, we need to supply the
> sortOperator, sortCollation and nullsFirstFlag, I tend to agree with
> David. I admit that the parsing part is not good, so I will remove it
> by using two boolean parameters Jian suggested earlier.
>
> Will send out another version by tomorrow.

Based on the previous discussion, I split it into two patches in V8.

0001 is the general sort part without `is_ascending` or `nulls_first`,
the sort order is determined by the "<" operator of the element type.
It also cached the type entry of both eletyp and the corresponding
array type.

0002 adds the `is_ascending` and `nulls_first` part, it now uses
two boolean parameters instead of parsing one text parameter.

>
> >
> > --
> > Best regards,
> > Aleksander Alekseev
>
>
>
> --
> Regards
> Junwang Zhao

--
Regards
Junwang Zhao

Attachment Content-Type Size
v8-0002-support-sort-order-and-nullsfirst-flag.patch application/octet-stream 8.4 KB
v8-0001-general-purpose-array_sort.patch application/octet-stream 10.3 KB

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Pavel Stehule 2024-10-26 07:20:12 Re: proposal: plpgsql, new check for extra_errors - strict_expr_check
Previous Message Dilip Kumar 2024-10-26 04:17:22 Re: Can rs_cindex be < 0 for bitmap heap scans?