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

Attachment: adjust_vacuum_parallel_option_handling_code.patch
Description: Binary data

Reply via email to