Re: Introduce list_reverse() to make lcons() usage less inefficient

Поиск
Список
Период
Сортировка
От David Rowley
Тема Re: Introduce list_reverse() to make lcons() usage less inefficient
Дата
Msg-id CAApHDvqxvGuET5MAM5K=XX9=qbqLS6ZXP49h2wihOsZQbrSqCg@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Introduce list_reverse() to make lcons() usage less inefficient  (Andres Freund <andres@anarazel.de>)
Ответы Re: Introduce list_reverse() to make lcons() usage less inefficient  (David Rowley <dgrowleyml@gmail.com>)
Список pgsql-hackers
On Fri, 17 Feb 2023 at 13:23, Andres Freund <andres@anarazel.de> wrote:
> But wouldn't an even cheaper way here be to iterate over the children in
> reverse order when match_partition_order_desc? We can do that efficiently
> now. Looks like we don't have a readymade helper for it, but it'd be easy
> enough to add or open code.

That seems fair.  I think open coding is a better option.  I had a go
at foreach_reverse recently and decided to keep clear of it due to
behavioural differences with foreach_delete_current().

I've attached a patch for this.  It seems to have similar performance
to the list_reverse()

$ psql -c "explain (analyze, timing off) select * from lp order by a
desc" postgres | grep "Planning Time"
 Planning Time: 522.554 ms <- cold relcache
 Planning Time: 467.776 ms
 Planning Time: 466.424 ms

David

Вложения

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

Предыдущее
От: Amit Kapila
Дата:
Сообщение: Re: DDL result is lost by CREATE DATABASE with WAL_LOG strategy
Следующее
От: Andres Freund
Дата:
Сообщение: Re: Reducing System Allocator Thrashing of ExecutorState to Alleviate FDW-related Performance Degradations