Skip site navigation (1) Skip section navigation (2)

autogenerating headers & bki stuff

From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: pgsql-hackers(at)postgresql(dot)org
Subject: autogenerating headers & bki stuff
Date: 2009-06-30 03:59:51
Message-ID: (view raw, whole thread or download thread mbox)
Lists: 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 and
Gen_fmgrtab.{sh,pl} into a single script called  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 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.



Attachment: gen_catalog-v1.patch
Description: text/x-diff (123.2 KB)


pgsql-hackers by date

Next:From: Greg StarkDate: 2009-06-30 04:17:17
Subject: Re: pre-proposal: permissions made easier
Previous:From: Josh BerkusDate: 2009-06-30 03:39:15
Subject: Re: pre-proposal: permissions made easier

Privacy Policy | About PostgreSQL
Copyright © 1996-2017 The PostgreSQL Global Development Group