Fix misuse of pg_log_info() for details/hints.
authorTom Lane <[email protected]>
Sun, 4 Jun 2023 15:22:05 +0000 (11:22 -0400)
committerTom Lane <[email protected]>
Sun, 4 Jun 2023 15:22:05 +0000 (11:22 -0400)
Two places in pg_dump_sort.c were using pg_log_info() to add
more details to a message printed with pg_log_warning().
This is bad, because at default verbosity level we would
print the warning line but not the details.  One should use
pg_log_warning_detail() or pg_log_warning_hint() instead.
Commit 9a374b77f got rid of most such abuses, but unaccountably
missed these.

Noted while studying a bug report from Sami Imseih.
Back- to v15 where 9a374b77f came in.  (Prior versions
don't have the missing-details misbehavior, for reasons
I didn't bother to track down.)

Discussion: https://postgr.es/m/2C1933AB-C2F8-499B-9D18-4AC1882256A0@amazon.com

src/bin/pg_dump/pg_dump_sort.c

index 745578d85503c84b105544b47e29a2e0dbf437eb..e503eaaa26b0c64f9c272cda3426638f3b2bf3e6 100644 (file)
@@ -1233,9 +1233,9 @@ repairDependencyLoop(DumpableObject **loop,
                                "there are circular foreign-key constraints among these tables:",
                                nLoop));
        for (i = 0; i < nLoop; i++)
-           pg_log_info("  %s", loop[i]->name);
-       pg_log_info("You might not be able to restore the dump without using --disable-triggers or temporarily dropping the constraints.");
-       pg_log_info("Consider using a full dump instead of a --data-only dump to avoid this problem.");
+           pg_log_warning_detail("%s", loop[i]->name);
+       pg_log_warning_hint("You might not be able to restore the dump without using --disable-triggers or temporarily dropping the constraints.");
+       pg_log_warning_hint("Consider using a full dump instead of a --data-only dump to avoid this problem.");
        if (nLoop > 1)
            removeObjectDependency(loop[0], loop[1]->dumpId);
        else                    /* must be a self-dependency */
@@ -1253,7 +1253,7 @@ repairDependencyLoop(DumpableObject **loop,
        char        buf[1024];
 
        describeDumpableObject(loop[i], buf, sizeof(buf));
-       pg_log_info("  %s", buf);
+       pg_log_warning_detail("%s", buf);
    }
 
    if (nLoop > 1)