Remove hard-coded schema knowledge about pg_attribute from genbki.pl
Alvaro Herrera <alvherre@alvh.no-ip.org>
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
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/catalog/Catalog.pm | modified | +65 −5 |
| src/backend/catalog/genbki.pl | modified | +108 −120 |
| src/include/catalog/genbki.h | modified | +3 −0 |
| src/include/catalog/pg_attribute.h | modified | +11 −11 |
Discussion
- WIP: a way forward on bootstrap data 111 messages · 2017-12-04 → 2018-05-06