Re: [PATCH] Teach Catalog.pm how many attributes there should be per DATA() line

From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: David Christensen <david(at)endpoint(dot)com>
Cc: PostgreSQL-development Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: [PATCH] Teach Catalog.pm how many attributes there should be per DATA() line
Date: 2015-10-08 16:23:44
Message-ID: CA+TgmobOqiHjORq1PkT7ZGMbwFPQiB=TAfpXxLjqut2bV4xWig@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Tue, Oct 6, 2015 at 9:15 AM, David Christensen <david(at)endpoint(dot)com> wrote:
> Fixes a build issue I ran into while adding some columns to system tables:
>
> Throws a build error if we encounter a different number of fields in a
> DATA() line than we expect for the catalog in question.
>
> Previously, it was possible to silently ignore any mismatches at build
> time which could result in symbol undefined errors at link time. Now
> we stop and identify the infringing line as soon as we encounter it,
> which greatly speeds up the debugging process.

I think this is a GREAT idea, but this line made me laugh[1]:

+ warn "No Natts defined yet, silently skipping check...\n";

I suggest that we make that a fatal error. Like "Could not find
definition Natts_pg_proc before start of DATA".

Secondly, I don't think we should check this at this point in the
code, because then it blindly affects everybody who uses Catalog.pm.
Let's pick one specific place to do this check. I suggest genbki.pl,
inside the loop with this comment: "# Ordinary catalog with DATA
line(s)"

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

[1] Because if you're producing a warning, it's not silent!

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2015-10-08 16:27:40 Re: [PATCH] Comment fixes
Previous Message Robert Haas 2015-10-08 16:09:59 Re: Getting sorted data from foreign server