]> granicus.if.org Git - postgresql/commit
Remove hard-coded schema knowledge about pg_attribute from genbki.pl
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Fri, 12 Jan 2018 14:21:42 +0000 (11:21 -0300)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Fri, 12 Jan 2018 14:21:42 +0000 (11:21 -0300)
commit49c784ece766781250224a371be14af71e7eda93
treeebd1bb26ebd20d2024105974b31174e4c413dfe7
parentbdb70c12b3a2e69eec6e51411df60d9f43ecc841
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
src/backend/catalog/Catalog.pm
src/backend/catalog/genbki.pl
src/include/catalog/genbki.h
src/include/catalog/pg_attribute.h