diff --git a/doc/src/sgml/ref/psql-ref.sgml b/doc/src/sgml/ref/psql-ref.sgml
index d17d405f20..ac609fdf56 100644
--- a/doc/src/sgml/ref/psql-ref.sgml
+++ b/doc/src/sgml/ref/psql-ref.sgml
@@ -3364,6 +3364,13 @@ testdb=> INSERT INTO my_table VALUES (:'content');
+
+ %p
+
+ The pid of the backend currently connected to.
+
+
+
%>
The port number at which the database server is listening.
diff --git a/src/bin/psql/prompt.c b/src/bin/psql/prompt.c
index 89842673f8..96e669a6ff 100644
--- a/src/bin/psql/prompt.c
+++ b/src/bin/psql/prompt.c
@@ -34,6 +34,7 @@
* %M - database server "hostname.domainname", "[local]" for AF_UNIX
* sockets, "[local:/dir/name]" if not default
* %m - like %M, but hostname only (before first dot), or always "[local]"
+ * %p - backend pid
* %> - database server port number
* %n - database user name
* %/ - current database
@@ -161,6 +162,15 @@ get_prompt(promptStatus_t status)
if (pset.db)
strlcpy(buf, session_username(), sizeof(buf));
break;
+ /* backend pid */
+ case 'p':
+ if (pset.db)
+ {
+ int pid = PQbackendPID(pset.db);
+ if (pid)
+ snprintf(buf, sizeof(buf), "%d", pid);
+ }
+ break;
case '0':
case '1':