Re: bloated heapam.h - Mailing list pgsql-hackers

From Zdenek Kotala
Subject Re: bloated heapam.h
Date
Msg-id 48283673.2080304@sun.com
Whole thread Raw
In response to Re: bloated heapam.h  (Alvaro Herrera <alvherre@commandprompt.com>)
Responses Re: bloated heapam.h  (Alvaro Herrera <alvherre@commandprompt.com>)
List pgsql-hackers
Alvaro Herrera wrote:
> Alvaro Herrera wrote:
>
>> Oops :-(  I just noticed that I removed bufmgr.h from bufpage.h, which
>> is a change you had objected to previously :-(
>
> However, it seems the right fix is to move BufferGetPageSize and
> BufferGetPage from bufpage.h to bufmgr.h.

+1 It makes more sense.

> (Digging further, it seems like bufpage.h should also include transam.h
> in order to get TransactionIdIsNormal ... I start to wonder how many
> problems of this nature we have on our headers.  Without having a way to
> detect whether the defined macros are valid, it seems hard to check
> programatically, however.)
>

I attached script which should check it. In first step it runs C preprocessor on
each header (postgres.h is included as well). The output from first step is
processed again with preprocessor and define.h is included. Define.h contains
"all" used macros in following format:

#define SIGABRT "NOT_EXPANDED_SIGABRT"

Main problem is how to generate define.h. I used following magic:

grep "^#define" `find . -name "*.h"` | cut -d" "  -f 2 | cut -f 1 | cut -f 1 -d"("

but it generates some noise as well. Maybe some Perl or AWK magic should be better.

        Zdenek

Attachment

pgsql-hackers by date:

Previous
From: Gregory Stark
Date:
Subject: Re: XIDs and big boxes again ...
Next
From: Suresh
Date:
Subject: Stack depth exceeded error