Fix misuse of pg_log_info() for details/hints.

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-patch 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
This commit is contained in:
Tom Lane 2023-06-04 11:22:05 -04:00
parent d0f4824a54
commit b3f32a6c31

View 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)