generate syscache info automatically

Peter Eisentraut <peter@eisentraut.org>

From: Peter Eisentraut <peter@eisentraut.org>
To: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2023-05-30T21:57:53Z
Lists: pgsql-hackers

Attachments

I want to report on my on-the-plane-to-PGCon project.

The idea was mentioned in [0].  genbki.pl already knows everything about 
system catalog indexes.  If we add a "please also make a syscache for 
this one" flag to the catalog metadata, we can have genbki.pl produce 
the tables in syscache.c and syscache.h automatically.

Aside from avoiding the cumbersome editing of those tables, I think this 
layout is also conceptually cleaner, as you can more easily see which 
system catalog indexes have syscaches and maybe ask questions about why 
or why not.

As a possible follow-up, I have also started work on generating the 
ObjectProperty structure in objectaddress.c.  One of the things you need 
for that is making genbki.pl aware of the syscache information.  There 
is some more work to be done there, but it's looking promising.


[0]: 
https://www.postgresql.org/message-id/flat/CA%2BhUKGKdpDjKL2jgC-GpoL4DGZU1YPqnOFHbDqFkfRQcPaR5DQ%40mail.gmail.com

Commits

  1. Generate syscache info from catalog files

  2. Fill in more of ObjectProperty

  3. Correct ObjectProperty entry for transforms

  4. genbki.pl: Factor out boilerplate generation

  5. Restructure DECLARE_INDEX arguments

  6. Update DECLARE_INDEX documentation

  7. Replace hardcoded switch in object_exists() with a lookup table.