Re: embedded list

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: embedded list
Дата
Msg-id 4201.1350591347@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: embedded list  (Alvaro Herrera <alvherre@2ndquadrant.com>)
Ответы Re: embedded list
Список pgsql-hackers
Alvaro Herrera <alvherre@2ndquadrant.com> writes:
> Here's the final version.  I think this is ready to go in.

I got around to reviewing this today.  I'm pretty seriously annoyed at
the definition of dlist_delete: it should *not* require the list header.
The present coding simply throws away one of the primary advantages of
a doubly-linked list over a singly-linked list, namely that you don't
have to have your hands on the list header in order to unlink a node.
This isn't merely academic either, as I see that the patch to catcache
code actually added a field to struct catctup to support making the
list header available.  That's a complete waste of 8 bytes (on a 64-bit
machine) per catalog cache entry.  The only thing it buys for us is
the ability to run dlist_check, which is something that isn't even
compiled (not even in an Assert build), and which doesn't actually do
that much useful even if it is compiled --- for instance, there's no way
to verify that the nodes were actually in the list claimed.

I think we should remove the head argument at least from dlist_delete,
and probably also dlist_insert_after and dlist_insert_before.
        regards, tom lane



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

Предыдущее
От: Alvaro Herrera
Дата:
Сообщение: Re: foreign key locks
Следующее
От: Alvaro Herrera
Дата:
Сообщение: Re: Skip checkpoint on promoting from streaming replication