Cleanup VACUUM option processing error messages
authorDavid Rowley <drowley@postgresql.org>
Thu, 9 Oct 2025 20:25:23 +0000 (09:25 +1300)
committerDavid Rowley <drowley@postgresql.org>
Thu, 9 Oct 2025 20:25:23 +0000 (09:25 +1300)
commit1b073cba4993b31fbf820504f297efce5d951c00
tree2746797fdeb121152e52196ef36b3759d0e7d302
parent89d57c1fb35522590ec1f70b123c853cf5a9acb2
Cleanup VACUUM option processing error messages

The processing of the PARALLEL option for VACUUM was not quite
following what the DefElem code had intended.  defGetInt32() already has
code to handle missing parameters and returns a perfectly good error
message for when that happens.

Here we get rid of the ExecVacuum() error:

ERROR: parallel option requires a value between 0 and N

and leave defGetInt32() handle it, which will give:

ERROR:  parallel requires an integer value

defGetInt32() was already handling the non-integer parameter case, so it
may as well handle the missing parameter case too.

Additionally, parameterize the option name to make translator work easier,
and also use errhint_internal() rather than errhint() for the
BUFFER_USAGE_LIMIT option since there isn't any work for a translator to
do for "%s".

Author: David Rowley <dgrowleyml@gmail.com>
Reviewed-by: Álvaro Herrera <alvherre@kurilemu.de>
Reviewed-by: Masahiko Sawada <sawada.mshk@gmail.com>
Discussion: https://postgr.es/m/CAApHDvovH14tNWB+WvP6TSbfi7-=TysQ9h5tQ5AgavwyWRWKHA@mail.gmail.com
src/backend/commands/vacuum.c
src/test/regress/expected/vacuum.out