Re: generate syscache info automatically

Peter Eisentraut <peter@eisentraut.org>

From: Peter Eisentraut <peter@eisentraut.org>
To: John Naylor <johncnaylorls@gmail.com>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2024-01-19T14:03:37Z
Lists: pgsql-hackers
On 19.01.24 06:28, John Naylor wrote:
> On Wed, Jan 17, 2024 at 7:46 PM Peter Eisentraut <peter@eisentraut.org> wrote:
>>
>> I updated the patch to use this style (but I swapped the first two
>> arguments from my example, so that the thing being created is named first).
>>
>> I also changed the names of the output files a bit to make them less
>> confusing.  (I initially had some files named .c.h, which was weird, but
>> apparently necessary to avoid confusing the build system.  But it's all
>> clearer now.)
>>
>> Other than bugs and perhaps style opinions, I think the first patch is
>> pretty good now.
> 
> LGTM. The only style consideration that occurred to me just now was
> MAKE_SYSCACHE, since it doesn't match the DECLARE_... macros. It seems
> like the same thing from a code generation perspective. The other
> macros refer to relations, so there is a difference, but maybe it
> doesn't matter. I don't have a strong opinion.

The DECLARE_* macros map to actual BKI commands ("declare toast", 
"declare index").  So I wanted to use a different verb to distinguish 
"generate code for this" from those BKI commands.




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.