pgsql: Remove hard-coded schema knowledge about pg_attribute from genbk

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Remove hard-coded schema knowledge about pg_attribute from genbk
Date: 2018-01-12 14:22:08
Message-ID: E1ea0Dg-0006DO-HW@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Remove hard-coded schema knowledge about pg_attribute from genbki.pl

Add the ability to label a column's default value in the catalog header,
and implement this for pg_attribute. A new function in Catalog.pm is
used to fill in a tuple with defaults. The build process will complain
loudly if a catalog entry is incomplete,

Commit 8137f2c3232 labeled variable length columns for the C preprocessor.
Expose that label to genbki.pl so we can exclude those columns from schema
macros in a general fashion. Also, format schema macro entries according
to their types.

This means slightly less code maintenance, but more importantly it's a
proving ground for mechanisms intended to be used in later commits.

While at it, I (Álvaro) couldn't resist making some changes in
genbki.pl: rename some functions to actually indicate their purpose
instead of actively misleading onlookers; and don't iterate on the whole
of pg_type to find the entry for each catalog row, using a hash instead
of an array.

Author: John Naylor, some changes by Álvaro Herrera
Discussion: https://postgr.es/m/CAJVSVGVJHwD8sfDfZW9TbCHWKf=C1YDRM-rF=2JenRU_y+VcFg@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/49c784ece766781250224a371be14af71e7eda93

Modified Files
--------------
src/backend/catalog/Catalog.pm | 70 +++++++++++-
src/backend/catalog/genbki.pl | 228 ++++++++++++++++++-------------------
src/include/catalog/genbki.h | 3 +
src/include/catalog/pg_attribute.h | 22 ++--
4 files changed, 187 insertions(+), 136 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Michael Meskes 2018-01-12 15:00:49 pgsql: Fix parsing of compatibility mode argument.
Previous Message Bruce Momjian 2018-01-12 02:50:31 pgsql: C comment: fix "the the" mentions in C comments