list rewrite committed - Mailing list pgsql-hackers

From Neil Conway
Subject list rewrite committed
Date
Msg-id 40B4215E.2090806@samurai.com
Whole thread Raw
Responses Re: list rewrite committed  (Christopher Kings-Lynne <chriskl@familyhealth.com.au>)
Re: list rewrite committed  (Jeff <threshar@torgo.978.org>)
List pgsql-hackers
I've applied the list rewrite patch to CVS HEAD. I've also sent a 
copy of the patch I applied to the -patches list.

Notes:

- the tree compiles without warnings and passes the regression 
tests. I'm not aware of any bugs, regression failures, or compiler 
warnings caused by the list rewrite patch -- please let me know if 
you encounter anything

- client code that uses the List API is _not_ source compatible with 
the new List API. The most common change will be the need to change 
the foreach() iteration variable to a ListCell*, rather than a 
List*. There are also some subtle changes in behavior: for example, 
lcons() is now destructive (in the sense that you cannot call it on 
a list and expect the list you pass to lcons() to be unmodified; 
this was the case with the old list API)

Remaining work:

- investigate inline functions for non-GCC compilers

- disable the use of the compatibility API throughout the tree and 
change the code over to use the new API function names. This ought 
to be largely a mechanical search and replace operation -- any 
patches are welcome. I plan to start converting the remainder of the 
tree in this fashion tomorrow.

- use the new for_each_cell() and forboth() macros throughout the 
tree, as appropriate.

- remove the FastList API -- there is no need for it anymore. Tom, 
would you like to do this or should I?

- anything else?

Thanks to Tom and Alvaro for their assistance in completing this work.

-Neil



pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: [COMMITTERS] pgsql-server: Add code to identify_system_timezone()
Next
From: Christopher Kings-Lynne
Date:
Subject: Re: list rewrite committed