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
---------------------------(end of broadcast)--------------------------- TIP 5: Have you checked our extensive FAQ?
http://www.postgresql.org/docs/faqs/FAQ.html