Hello While reviewing a patch, I noticed a typo in guc_params.dat. The code compiled and seemingly worked, and I was very surprised that the generator script didn't catch the mistake.
I looked into it, and I found several missing checks in gen_guc_tables. I attached fixes for 4 that I think would definitely improve the script (for now as separate patches, so it is easy to select only some of them): * 0001 fixes the issue that started this, it validates the allowed field names, preventing typos in their names * 0002 goes a step further and validates that fields specific to some types can only appear for those types * 0003 just improves the error reported by duplicate names, previously this was confusing (it referred to incorrect ordering) * 0004 adds basic checks about allowed characters in GUC names I was also thinking about adding validations for the enum/define values (config group, flags, guc context), but that requires a somewhat fragile extraction code, and I decided to leave that out for now. What do you think about these changes?
0001-gen_guc_tables-reject-unrecognized-field-names-in-gu.patch
Description: Binary data
0002-gen_guc_tables-reject-type-inappropriate-fields-in-g.patch
Description: Binary data
0003-gen_guc_tables-report-duplicate-entry-names-distinct.patch
Description: Binary data
0004-gen_guc_tables-validate-GUC-name-format.patch
Description: Binary data
