Re: A qsort template

Поиск
Список
Период
Сортировка
От John Naylor
Тема Re: A qsort template
Дата
Msg-id CAFBsxsEV0nzyCmiEhqEHN9jUf8vT073TpW-cwU9mwMr1tk3=xw@mail.gmail.com
обсуждение исходный текст
Ответ на Re: A qsort template  (Peter Geoghegan <pg@bowt.ie>)
Ответы Re: A qsort template  (John Naylor <john.naylor@enterprisedb.com>)
Список pgsql-hackers
On Tue, Jan 18, 2022 at 9:58 PM Peter Geoghegan <pg@bowt.ie> wrote:
>
> On Tue, Jan 18, 2022 at 6:39 PM John Naylor
> <john.naylor@enterprisedb.com> wrote:
> > Editorializing the null position in queries is not very common in my
> > experience. Not null is interesting since it'd be trivial to pass
> > constant false to the same Apply[XYZ]SortComparator() and let the
> > compiler remove all those branches for us. On the other hand, those
> > branches would be otherwise predicted well, so it might make little or
> > no difference.
>
> If you were going to do this, maybe you could encode NULL directly in
> an abbreviated key. I think that that could be made to work if it was
> limited to opclasses with abbreviated keys encoded as unsigned
> integers. Just a thought.

Now that you mention that, I do remember reading about this technique
in the context of b-tree access, so it does make sense. If we had that
capability, it would be trivial to order the nulls how we want while
building the sort tuple datums, and the not-null case would be handled
automatically. And have a smaller code footprint, I think.

-- 
John Naylor
EDB: http://www.enterprisedb.com



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

Предыдущее
От: Robert Haas
Дата:
Сообщение: Re: refactoring basebackup.c
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Replace uses of deprecated Python module distutils.sysconfig