Re: embedded list

Andres Freund <andres@2ndquadrant.com>

From: Andres Freund <andres@2ndquadrant.com>
To: pgsql-hackers@postgresql.org
Cc: Alvaro Herrera <alvherre@2ndquadrant.com>, Peter Geoghegan <peter@2ndquadrant.com>, Robert Haas <robertmhaas@gmail.com>, Tom Lane <tgl@postgresql.org>
Date: 2012-10-11T16:37:59Z
Lists: pgsql-hackers
On Thursday, October 11, 2012 03:27:17 PM Andres Freund wrote:
> On Thursday, October 11, 2012 03:23:12 PM Alvaro Herrera wrote:
> > Alvaro Herrera escribió:
> > > I also included two new functions in that patch, dlisti_push_head and
> > > dlisti_push_tail.  These functions are identical to dlist_push_head and
> > > dlist_push_tail, except that they do not accept non-circular lists.
> > > What this means is that callers that find the non-circularity
> > > acceptable can use the regular version, and will run dlist_init() on
> > > demand; callers that want the super-tight code can use the other
> > > version. I didn't bother with a new dlist_is_empty.
> > 
> > Is there any more input on this?  At this point I would recommend
> > committing this patch _without_ these dlisti functions, i.e. we will
> > only have the functions that check for NULL-initialized dlists.  We can
> > later discuss whether to include them or not (it would be a much smaller
> > patch and would not affect the existing functionality in any way.)
> 
> I can live with that. I didn't have a chance to look at the newest revision
> yet, will do that after I finish my first pass through foreign key locks.
I looked at and I am happy enough ;)

One thing:
I think you forgot to adjust dlist_reverse_foreach to the NULL list header.

Thanks!

Andres
-- 
 Andres Freund	                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services


Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Provide some static-assertion functionality on all compilers.

  2. Add infrastructure for compile-time assertions about variable types.

  3. Remove 576 references of include files that were not needed.

  4. More include file adjustments.

  5. Allow each C include file to compile on its own by including any needed