On Tue, Jan 31, 2012 at 3:43 PM, Tom Lane <t...@sss.pgh.pa.us> wrote: > Daniel Farina <dan...@heroku.com> writes: >> On Tue, Jan 17, 2012 at 2:14 AM, Daniel Farina <dan...@heroku.com> wrote: >>> See the attached patch. It has a detailed cover letter/comment at the >>> top of the file. > >> I have amended that description to be more accurate. > > I looked at this a bit, and it seems to go considerably further than > I had in mind: unless I've missed something, this will instantiate a > couple of kilobytes of static data in every .c file that includes > pg_crc.h, directly or indirectly. While that might be tolerable in an > external project, there are going to be a a LOT of copies of that table > in the backend, many of them unused. Did you check to see how much > larger the backend executable got? For that matter, aren't there a lot > of build warnings about unused static variables?
Ah, yes, I think my optimizations were off when building, or something. I didn't get such verbosity at first, and then I remember doing something slightly different and then getting a lot of output. I didn't pay attention to the build size. I will investigate. > It occurs to me that rather than an #ifdef symbol, it might be > appropriate to put the constant table into a separate .h file, > say pg_crc_tables.h, so that users would control it by including > that file or not rather than an #ifdef symbol. This is pretty > trivial but might look a bit nicer. I agree, I was about to say "what about a preprocessor hack..." after the last paragraph, but saw you beat me to the punch. I'll have a look soon. -- fdr -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers