autogenerating headers & bki stuff - Mailing list pgsql-hackers

From Robert Haas
Subject autogenerating headers & bki stuff
Date
Msg-id 603c8f070906292059g46767866t50b1097fa10bff39@mail.gmail.com
Whole thread Raw
Responses Re: autogenerating headers & bki stuff  (Robert Haas <robertmhaas@gmail.com>)
Re: autogenerating headers & bki stuff  (Peter Eisentraut <peter_e@gmx.net>)
Re: autogenerating headers & bki stuff  (Peter Eisentraut <peter_e@gmx.net>)
List pgsql-hackers
As some of you have probably gathered from a couple of recent patches
that I've posted, I've been taking a look at the scripts we use to
generate various derived files based on the catalog headers, and I
think there's room for improvement.  First, as discussed on previous
threads, it seems needlessly complex to have both perl and
shell-script implementations of genbki and Gen_fmgrtab.   Second,
there's a fair amount of duplicated data that could be auto-generated,
but currently isn't.

The attached patch merges all of the logic currently in genbki.sh and
Gen_fmgrtab.{sh,pl} into a single script called gen_catalog.pl.  It
then extends that logic to generate all of the Anum_* and Natts_*
constants, as well as the Schema_pg_* declarations for the bootstrap
tables.  (I don't see a clean, easy way to generate Schema_pg_index,
since there are no DATA() lines for that table in pg_attribute.h; but
the others are all straightforward.)  It also adds a fair amount of
error checking to what we currently have in place.

In order to avoid create a build-time dependency on Perl for
non-Windows platforms, this patch makes all of the things generated by
gen_catalog.pl into distprep targets.  This should be OK, since none
of them depend on architecture or configuration.

I have not made any attempt to fix the MSVC build to work with this,
but there should be some stuff that can be simplified there as well
(in particular, the Perl reimplementation of genbki).

Love it?  Hate it?  Comments appreciated.

Thanks,

...Robert

Attachment

pgsql-hackers by date:

Previous
From: Josh Berkus
Date:
Subject: Re: pre-proposal: permissions made easier
Next
From: David Fetter
Date:
Subject: Re: pre-proposal: permissions made easier