summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backend/catalog/dependency.c31
-rw-r--r--src/backend/catalog/pg_shdepend.c6
2 files changed, 26 insertions, 11 deletions
diff --git a/src/backend/catalog/dependency.c b/src/backend/catalog/dependency.c
index 47ad2e83da9..d138b6a0d27 100644
--- a/src/backend/catalog/dependency.c
+++ b/src/backend/catalog/dependency.c
@@ -910,6 +910,10 @@ reportDependentObjects(const ObjectAddresses *targetObjects,
objDesc = getObjectDescription(obj);
+ /* An object being dropped concurrently doesn't need to be reported */
+ if (objDesc == NULL)
+ continue;
+
/*
* If, at any stage of the recursive search, we reached the object via
* an AUTO, INTERNAL, or EXTENSION dependency, then it's okay to
@@ -933,23 +937,28 @@ reportDependentObjects(const ObjectAddresses *targetObjects,
{
char *otherDesc = getObjectDescription(&extra->dependee);
- if (numReportedClient < MAX_REPORTED_DEPS)
+ if (otherDesc)
{
+ if (numReportedClient < MAX_REPORTED_DEPS)
+ {
+ /* separate entries with a newline */
+ if (clientdetail.len != 0)
+ appendStringInfoChar(&clientdetail, '\n');
+ appendStringInfo(&clientdetail, _("%s depends on %s"),
+ objDesc, otherDesc);
+ numReportedClient++;
+ }
+ else
+ numNotReportedClient++;
/* separate entries with a newline */
- if (clientdetail.len != 0)
- appendStringInfoChar(&clientdetail, '\n');
- appendStringInfo(&clientdetail, _("%s depends on %s"),
+ if (logdetail.len != 0)
+ appendStringInfoChar(&logdetail, '\n');
+ appendStringInfo(&logdetail, _("%s depends on %s"),
objDesc, otherDesc);
- numReportedClient++;
+ pfree(otherDesc);
}
else
numNotReportedClient++;
- /* separate entries with a newline */
- if (logdetail.len != 0)
- appendStringInfoChar(&logdetail, '\n');
- appendStringInfo(&logdetail, _("%s depends on %s"),
- objDesc, otherDesc);
- pfree(otherDesc);
ok = false;
}
else
diff --git a/src/backend/catalog/pg_shdepend.c b/src/backend/catalog/pg_shdepend.c
index a24e2cefa06..ff7a1eb8247 100644
--- a/src/backend/catalog/pg_shdepend.c
+++ b/src/backend/catalog/pg_shdepend.c
@@ -1113,6 +1113,12 @@ storeObjectDescription(StringInfo descs,
{
char *objdesc = getObjectDescription(object);
+ /*
+ * An object being dropped concurrently doesn't need to be reported.
+ */
+ if (objdesc == NULL)
+ return;
+
/* separate entries with a newline */
if (descs->len != 0)
appendStringInfoChar(descs, '\n');