Re: warning handling in Perl scripts

From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: Peter Eisentraut <peter_e(at)gmx(dot)net>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: warning handling in Perl scripts
Date: 2012-06-24 20:05:20
Message-ID: CA+TgmoaC0qQMR9UnabRw2Fk0DCtXCeT4YbVjh1JJ2qXxRRJ7xw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Sun, Jun 24, 2012 at 2:40 PM, Peter Eisentraut <peter_e(at)gmx(dot)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

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andres Freund 2012-06-24 21:11:07 Re: Catalog/Metadata consistency during changeset extraction from wal
Previous Message Heikki Linnakangas 2012-06-24 18:56:17 Re: Preferred way to define 64-bit constants?