Re: Vacuum o/p with (full 1, parallel 0) option throwing an error

Amit Kapila <amit.kapila16@gmail.com>

From: Amit Kapila <amit.kapila16@gmail.com>
To: Michael Paquier <michael@paquier.xyz>
Cc: Masahiko Sawada <masahiko.sawada@2ndquadrant.com>, Justin Pryzby <pryzby@telsasoft.com>, Mahendra Singh Thalor <mahi6run@gmail.com>, Robert Haas <robertmhaas@gmail.com>, tushar <tushar.ahuja@enterprisedb.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2020-04-14T03:25:15Z
Lists: pgsql-hackers
On Tue, Apr 14, 2020 at 7:52 AM Michael Paquier <michael@paquier.xyz> wrote:
>
> Makes sense.  I have two comments.
>
>          ereport(ERROR,
>                  (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
> -                 errmsg("cannot specify both FULL and PARALLEL options")));
> +                 errmsg("VACUUM FULL cannot be performed in parallel")));
> Better to avoid a full sentence here [1]?  This should be a "cannot do
> foo" errror.
>

I could see similar error messages in other places like below:
CONCURRENTLY cannot be used when the materialized view is not populated
CONCURRENTLY and WITH NO DATA options cannot be used together
COPY delimiter cannot be newline or carriage return

Also, I am not sure if it violates the style we have used in code.  It
seems the error message is short, succinct and conveys the required
information.

> -VACUUM (PARALLEL 1) tmp; -- disables parallel vacuum option
> +VACUUM (PARALLEL 1) tmp; -- parallel vacuum disabled for temp tables
>  WARNING:  disabling parallel option of vacuum on "tmp" --- cannot  vacuum temporary tables in parallel
> +VACUUM (PARALLEL 0, FULL TRUE) tmp; -- can specify parallel disabled (even though that's implied by FULL)
>
> To fully close the gap in the tests, I would also add a test for
> (PARALLEL 1, FULL false) where FULL directly specified, even if that
> sounds like a nit.  That's fine to test even on a temporary table.
>

Okay, I will do this once we agree on the error message stuff.

-- 
With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com



Commits

  1. Fix the usage of parallel and full options of vacuum command.

  2. pg_restore -jN does not equate "multiple jobs", so partly revert the