Re: Bizarre choice of case for RELKIND_PARTITIONED_TABLE

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Robert Haas <robertmhaas@gmail.com>
Cc: "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2017-03-08T00:02:04Z
Lists: pgsql-hackers
Robert Haas <robertmhaas@gmail.com> writes:
> On Tue, Mar 7, 2017 at 6:03 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> Hm, one would hope that the vast majority of code references are neither
>> of those, but rather "RELKIND_PARTITIONED_TABLE".

> For reasons which must've seemed good to whoever instituted the
> policy, pg_dump refers to relkinds using the bare letters rather than
> the constants.

Even in pg_dump, it appears to me that the large majority of relkind
references use the symbolic names.  Quite a few of the violations of
that policy look to be new ... and now that I see them, their days are
numbered.

> (And protocol message types don't even have defined constants.  Uggh.)

Yeah, that's a different issue, which boils down to the fact that in order
to do anything useful we'd need to clutter client-visible namespace with
the symbols.  I wouldn't be averse to doing something about it as long as
it's not done in postgres_ext.h, but if not there where?

			regards, tom lane


Commits

  1. Change the relkind for partitioned tables from 'P' to 'p'.

  2. Fix hard-coded relkind constants in assorted other files.

  3. Fix hard-coded relkind constants in assorted src/bin files.

  4. Fix hard-coded relkind constants in psql/describe.c.

  5. Fix hard-coded relkind constants in pg_dump.c.

  6. Restructure LOCKTAG as per discussions of a couple months ago.