On Sun, Jun 24, 2012 at 2:40 PM, Peter Eisentraut <peter_e@gmx.net> wrote:
> Every time I make a change to the structure of the catalog files,
> genbki.pl produces a bunch of warnings (like "Use of uninitialized value
> in string eq at genbki.pl line ..."), and produces corrupted output
> files, that are then (possibly) detected later by the compiler. Also,
> getting out of that is difficult because due to the complicated
> dependency relationship between the involved files, you need to remove a
> bunch of files manually, or clean everything. So error handling could
> be better.
>
> It seems that adding
>
> diff --git a/src/backend/catalog/genbki.pl b/src/backend/catalog/genbki.pl
> index ebc4825..7d66da9 100644
> --- a/src/backend/catalog/genbki.pl
> +++ b/src/backend/catalog/genbki.pl
> @@ -19,6 +19,8 @@
> use strict;
> use warnings;
>
> +local $SIG{__WARN__} = sub { die $_[0] };
> +
> my @input_files;
> our @include_path;
> my $output_path = '';
>
> would address that.
>
> Could that cause any other problems? Should it be added to all Perl
> scripts?
This seems like a band-aid. How about if we instead add whatever
error-handling the script is missing, so that it produces an
appropriate, human-readable error message?
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company