Thread: Re: [HACKERS] contrib/pg_buffercache
I have confirmed that the attached patch works on Cygwin as well as Windows. Please apply. cheers andrew Andrew Dunstan wrote: >It fixes the build error on Windows - haven't tried because i don't have >time, but I know it won't work on Cygwin, because WIN32 isn't (usually) >defined on Cygwin - see previous almost endless discussions. > >cheers > >andrew > >Mark Kirkwood wrote: > > > >>Andrew Dunstan wrote: >> >> >> >>>... is apparently broken for Windows and Cygwin. See for example >>>http://www.pgbuildfarm.org/cgi-bin/show_log.pl?nm=loris&dt=2005-03-16%2001:55:33 >>> >>> >>> >>> >>Andrew, >> >>The attached patch seems to sort it for me, can you give it try on >>win32 and cygwin? >> >>cheers >> >>Mark >> >> >> > > Index: contrib/pg_buffercache/pg_buffercache_pages.c =================================================================== RCS file: /home/cvsmirror/pgsql/contrib/pg_buffercache/pg_buffercache_pages.c,v retrieving revision 1.1 diff -c -r1.1 pg_buffercache_pages.c *** contrib/pg_buffercache/pg_buffercache_pages.c 12 Mar 2005 15:36:24 -0000 1.1 --- contrib/pg_buffercache/pg_buffercache_pages.c 30 Mar 2005 19:35:59 -0000 *************** *** 17,22 **** --- 17,27 ---- #define NUM_BUFFERCACHE_PAGES_ELEM 6 + #if defined(WIN32) || defined(__CYGWIN__) + extern DLLIMPORT BufferDesc *BufferDescriptors; + extern DLLIMPORT volatile uint32 InterruptHoldoffCount; + #endif + /* * Record structure holding the to be exposed cache data.
Andrew Dunstan wrote: > I have confirmed that the attached patch works on Cygwin as well as > Windows. Please apply. Applied, thanks. -Neil
Neil Conway wrote: > Andrew Dunstan wrote: > >> I have confirmed that the attached patch works on Cygwin as well as >> Windows. Please apply. > > > Applied, thanks. > Great that it fixes it... however, I had submitted a tidier patch that puts the macro in the header (probably after asking Andrew to test the first one, oops - sorry Andrew). I have tested it on win32 native. Do you want to back out the first one and use this instead? regards Mark *** pg_buffercache_pages.h.orig Thu Mar 17 10:12:20 2005 --- pg_buffercache_pages.h Thu Mar 17 13:44:45 2005 *************** *** 15,18 **** --- 15,24 ---- extern Datum pg_buffercache_pages(PG_FUNCTION_ARGS); + /* A little hackery for Windows and Cygwin */ + #if defined (WIN32) || defined (__CYGWIN__) + extern DLLIMPORT BufferDesc *BufferDescriptors; + extern DLLIMPORT volatile uint32 InterruptHoldoffCount; + #endif + #endif /* PG_BUFFERCACHE_PAGES_H */
Mark Kirkwood wrote: > Great that it fixes it... however, I had submitted a tidier patch that > puts the macro in the header How is this tidier? (I don't see a reason for pg_buffercache_pages.h at all, actually.) -Neil
Neil Conway wrote: > Mark Kirkwood wrote: > >> Great that it fixes it... however, I had submitted a tidier patch that >> puts the macro in the header > > > How is this tidier? > err... puts the macro in the header.... > (I don't see a reason for pg_buffercache_pages.h at all, actually.) > (chuckles) - well, that puts a different complexion on it, best leave it as is then! (in fact, feel free to move the declaration from pg_buffercache_pages.h to pg_buffercache_pages.c, and eliminate the header altogether) cheers Mark
Mark Kirkwood wrote: > Neil Conway wrote: > >> Andrew Dunstan wrote: >> >>> I have confirmed that the attached patch works on Cygwin as well as >>> Windows. Please apply. >> >> >> >> Applied, thanks. >> > > > Great that it fixes it... however, I had submitted a tidier patch that > puts the macro in the header (probably after asking Andrew to test the > first one, oops - sorry Andrew). I have tested it on win32 native. > > Do you want to back out the first one and use this instead? > > > I didn't see the original of the later patch, which is why I sent in mine. I honestly don't care that much either way, although I'm inclined to agree that the header file is just unnecessary noise. cheers andrew
Andrew Dunstan wrote: > > I didn't see the original of the later patch, which is why I sent in > mine. I honestly don't care that much either way, although I'm inclined > to agree that the header file is just unnecessary noise. > Well, looks like a strong feeling for no header :-). I didn't really think about *not* having one to be honest. So, anyway - instead of inviting Neil to spend valuable time eliminating it, I should do it myself... So, please ignore my previous patch to the header file, and consider this one - which eliminates it completely. best wishes Mark diff -Nacr pg_buffercache.orig/pg_buffercache_pages.c pg_buffercache/pg_buffercache_pages.c *** pg_buffercache.orig/pg_buffercache_pages.c Fri Apr 1 11:25:49 2005 --- pg_buffercache/pg_buffercache_pages.c Fri Apr 1 11:28:22 2005 *************** *** 12,18 **** #include "storage/buf_internals.h" #include "storage/bufmgr.h" #include "utils/relcache.h" - #include "pg_buffercache_pages.h" #define NUM_BUFFERCACHE_PAGES_ELEM 6 --- 12,17 ---- *************** *** 21,26 **** --- 20,27 ---- extern DLLIMPORT BufferDesc *BufferDescriptors; extern DLLIMPORT volatile uint32 InterruptHoldoffCount; #endif + + Datum pg_buffercache_pages(PG_FUNCTION_ARGS); /* diff -Nacr pg_buffercache.orig/pg_buffercache_pages.h pg_buffercache/pg_buffercache_pages.h *** pg_buffercache.orig/pg_buffercache_pages.h Fri Apr 1 11:25:49 2005 --- pg_buffercache/pg_buffercache_pages.h Thu Jan 1 12:00:00 1970 *************** *** 1,18 **** - /*------------------------------------------------------------------------- - * - * pg_buffercache_pages.h - * Prototypes for pg_buffercache_pages - * - * - * $PostgreSQL: pgsql/contrib/pg_buffercache/pg_buffercache_pages.h,v 1.1 2005/03/12 15:36:24 neilc Exp $ - * - *------------------------------------------------------------------------- - */ - - - #ifndef PG_BUFFERCACHE_PAGES_H - #define PG_BUFFERCACHE_PAGES_H - - extern Datum pg_buffercache_pages(PG_FUNCTION_ARGS); - - #endif /* PG_BUFFERCACHE_PAGES_H */ --- 0 ----
Mark Kirkwood wrote: > So, please ignore my previous patch to the header file, and consider > this one - which eliminates it completely. Thanks, applied. -Neil