I was just looking at the VACUUM option processing and I saw that the
code to process the PARALLEL option doesn't make use of the code in
defGetInt32() that's meant to handle empty and non-integer parameters.
ExecVacuum() has code to handle an empty PARALLEL parameters, but not
non-integer ones. That goes through to defGetInt32().
# vacuum (parallel 'bananas') pg_class;
ERROR: parallel requires an integer value
I feel if we're going to show that message for non-integer, then why
not the same one for empty parameter rather than handling that with a
custom message in the caller.
The attached is what I had in mind.
David