On Tue, Jan 07, 2020 at 07:55:17PM -0500, Tom Lane wrote: > * Please revert a052f6c as a separate commit specifically doing that, > so that when it comes time to make the release notes, it's clear that > a052f6c doesn't require documentation.
Okay. Committed the revert first then. > * I think the check on log_min_messages <= LOG is probably wrong, since > LOG sorts out of order for this purpose. Compare is_log_level_output() > in elog.c. I'd suggest not bothering with trying to optimize away the > get_namespace_name call here; we shouldn't be in this code path often > enough for performance to matter, and nobody ever cared about it before. Done. > * I don't greatly like the notation > dropping orphan temp table \"%s.(null).%s\" ... > and I bet Robert won't either. Not sure offhand about a better > idea --- maybe > dropping orphan temp table \"%s\" with OID %u in database \"%s\" And done this way as per the attached. I am of course open to objections or better ideas, though this looks formulation looks pretty good to me. Robert? -- Michael
diff --git a/src/backend/postmaster/autovacuum.c b/src/backend/postmaster/autovacuum.c index f0e40e36af..22f7bdeaff 100644 --- a/src/backend/postmaster/autovacuum.c +++ b/src/backend/postmaster/autovacuum.c @@ -2202,6 +2202,7 @@ do_autovacuum(void) Oid relid = lfirst_oid(cell); Form_pg_class classForm; ObjectAddress object; + char *nspname; /* * Check for user-requested abort. @@ -2249,12 +2250,18 @@ do_autovacuum(void) continue; } - /* OK, let's delete it */ - ereport(LOG, - (errmsg("autovacuum: dropping orphan temp table \"%s.%s.%s\"", - get_database_name(MyDatabaseId), - get_namespace_name(classForm->relnamespace), - NameStr(classForm->relname)))); + nspname = get_namespace_name(classForm->relnamespace); + + if (nspname != NULL) + ereport(LOG, + (errmsg("autovacuum: dropping orphan temp table \"%s.%s.%s\"", + get_database_name(MyDatabaseId), + nspname, NameStr(classForm->relname)))); + else + ereport(LOG, + (errmsg("autovacuum: dropping orphan temp table \"%s\" with OID %u in database \"%s\"", + NameStr(classForm->relname), relid, + get_database_name(MyDatabaseId)))); object.classId = RelationRelationId; object.objectId = relid;
signature.asc
Description: PGP signature