Heikki Linnakangas wrote: > Here we go. I've split this again into two patches. The first patch > is just refactoring the current code. It moves XLogInsert into a new > file, xloginsert.c, and the definition of XLogRecord to new > xlogrecord.h header file. As a result, there is a a lot of churn in > the #includes in C files that generate WAL records, or contain redo > routines. The number of files that pull in xlog.h - directly or > indirectly through other headers - is greatly reduced.
I think you should push the first patch for now and continue to investigate the issues in the second patch. Some minor suggestions I have for the first patch are that since xlog.h is no longer used by other headers (but only by .c files), you should just #include xloginsert.h instead of doing the forward declaration of struct XLogRecData; and in xlog_internal.h, instead of - * XLogRecord is defined in xlog.h, but we avoid #including that to keep + * XLogRecord is defined in xlogrecord.h, but we avoid #including that to keep I would just suggest to #include xlogrecord.h, since it should just work to include that file from frontend programs. It didn't work for xlog.h because that one #includes fmgr.h IIRC and that one causes Datum to appear, which makes compilation blow up. Shouldn't be the case here. -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers