Tom Lane wrote:
> Another way that we perhaps should consider is to follow the example of
> XLogInsert and use internally-threaded lists that are typically stored
> in local arrays in the callers. I've never thought that way was
> especially beautiful, but it does have the advantage of being an idiom
> that's already in use in other low-level code.
FWIW you could use an slist from ilist.c. It means each node would need
a "next" pointer, but there's no separately allocated list cell.
There are many places that could use slist/dlist. For instance while
reading the SET PERSISTENT patch I noticed it has head and tail pointers
being passed all over the place, which looks rather ugly.
--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services