aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--contrib/postgres_fdw/option.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/contrib/postgres_fdw/option.c b/contrib/postgres_fdw/option.c
index 984e4d168a0..d530f7d0860 100644
--- a/contrib/postgres_fdw/option.c
+++ b/contrib/postgres_fdw/option.c
@@ -485,8 +485,6 @@ process_pgfdw_appname(const char *appname)
const char *p;
StringInfoData buf;
- Assert(MyProcPort != NULL);
-
initStringInfo(&buf);
for (p = appname; *p != '\0'; p++)
@@ -522,13 +520,29 @@ process_pgfdw_appname(const char *appname)
appendStringInfoString(&buf, cluster_name);
break;
case 'd':
- appendStringInfoString(&buf, MyProcPort->database_name);
+ if (MyProcPort)
+ {
+ const char *dbname = MyProcPort->database_name;
+
+ if (dbname)
+ appendStringInfoString(&buf, dbname);
+ else
+ appendStringInfoString(&buf, "[unknown]");
+ }
break;
case 'p':
appendStringInfo(&buf, "%d", MyProcPid);
break;
case 'u':
- appendStringInfoString(&buf, MyProcPort->user_name);
+ if (MyProcPort)
+ {
+ const char *username = MyProcPort->user_name;
+
+ if (username)
+ appendStringInfoString(&buf, username);
+ else
+ appendStringInfoString(&buf, "[unknown]");
+ }
break;
default:
/* format error - ignore it */