]> granicus.if.org Git - postgresql/commitdiff
Fix error status of vacuumdb when multiple jobs are used
authorMichael Paquier <michael@paquier.xyz>
Thu, 9 May 2019 01:29:40 +0000 (10:29 +0900)
committerMichael Paquier <michael@paquier.xyz>
Thu, 9 May 2019 01:29:40 +0000 (10:29 +0900)
When running a batch of VACUUM or ANALYZE commands on a given database,
there were cases where it is possible to have vacuumdb not report an
error where it actually should, leading to incorrect status results.

Author: Julien Rouhaud
Reviewed-by: Amit Kapila, Michael Paquier
Discussion: https://postgr.es/m/CAOBaU_ZuTwz7CtqLYJ1Ouuh272bTQPLN8b1bAPk0bCBm4PDMTQ@mail.gmail.com
Backpatch-through: 9.5

src/bin/scripts/vacuumdb.c

index 15c07f9069b6f4bc96a0d73f4d461a5a8a7cf0b3..38753e94e23142bae54ddc36195bc7a3b641f68e 100644 (file)
@@ -525,7 +525,10 @@ vacuum_one_database(const char *dbname, vacuumingOptions *vacopts,
                for (j = 0; j < concurrentCons; j++)
                {
                        if (!GetQueryResult((slots + j)->connection, progname))
+                       {
+                               failed = true;
                                goto finish;
+                       }
                }
        }