diff --git a/doc/src/sgml/ref/psql-ref.sgml b/doc/src/sgml/ref/psql-ref.sgml
index 4f3ef5c..11a6ed2 100644
*** a/doc/src/sgml/ref/psql-ref.sgml
--- b/doc/src/sgml/ref/psql-ref.sgml
*************** testdb=>
*** 781,786 ****
--- 781,796 ----
+ \conninfo
+
+
+ Outputs connection information about the current database
+ connection.
+
+
+
+
+
\copy { table [ ( column_list ) ] | ( query ) }
{ from | to }
{ filename | stdin | stdout | pstdin | pstdout }
diff --git a/src/bin/psql/command.c b/src/bin/psql/command.c
index 35a0800..eba9861 100644
*** a/src/bin/psql/command.c
--- b/src/bin/psql/command.c
*************** exec_command(const char *cmd,
*** 294,299 ****
--- 294,323 ----
free(opt);
}
+ /* \conninfo -- display information about the current connection */
+ else if (strcmp(cmd, "conninfo") == 0)
+ {
+ char *host = PQhost(pset.db);
+
+ if (host)
+ {
+ printf("Connected to database: \"%s\", user: \"%s\", host: \"%s\", port: %s\n",
+ PQdb(pset.db),
+ PQuser(pset.db),
+ host,
+ PQport(pset.db)
+ );
+ }
+ else
+ {
+ printf("Connected to database: \"%s\", user: \"%s\", port: %s via local domain socket\n",
+ PQdb(pset.db),
+ PQuser(pset.db),
+ PQport(pset.db)
+ );
+ }
+ }
+
/* \copy */
else if (pg_strcasecmp(cmd, "copy") == 0)
{
diff --git a/src/bin/psql/help.c b/src/bin/psql/help.c
index 09a348f..19c807d 100644
*** a/src/bin/psql/help.c
--- b/src/bin/psql/help.c
*************** slashUsage(unsigned short int pager)
*** 162,168 ****
{
FILE *output;
! output = PageOutput(86, pager);
/* if you add/remove a line here, change the row count above */
--- 162,168 ----
{
FILE *output;
! output = PageOutput(87, pager);
/* if you add/remove a line here, change the row count above */
*************** slashUsage(unsigned short int pager)
*** 249,254 ****
--- 249,255 ----
PQdb(pset.db));
fprintf(output, _(" \\encoding [ENCODING] show or set client encoding\n"));
fprintf(output, _(" \\password [USERNAME] securely change the password for a user\n"));
+ fprintf(output, _(" \\conninfo display information about current connection\n"));
fprintf(output, "\n");
fprintf(output, _("Operating System\n"));
diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c
index f806a74..b43c478 100644
*** a/src/bin/psql/tab-complete.c
--- b/src/bin/psql/tab-complete.c
*************** psql_completion(char *text, int start, i
*** 636,642 ****
};
static const char *const backslash_commands[] = {
! "\\a", "\\connect", "\\C", "\\cd", "\\copy", "\\copyright",
"\\d", "\\da", "\\db", "\\dc", "\\dC", "\\dd", "\\dD", "\\des", "\\deu", "\\dew", "\\df",
"\\dF", "\\dFd", "\\dFp", "\\dFt", "\\dg", "\\di", "\\dl",
"\\dn", "\\do", "\\dp", "\\drds", "\\ds", "\\dS", "\\dt", "\\dT", "\\dv", "\\du",
--- 636,642 ----
};
static const char *const backslash_commands[] = {
! "\\a", "\\connect", "\\conninfo", "\\C", "\\cd", "\\copy", "\\copyright",
"\\d", "\\da", "\\db", "\\dc", "\\dC", "\\dd", "\\dD", "\\des", "\\deu", "\\dew", "\\df",
"\\dF", "\\dFd", "\\dFp", "\\dFt", "\\dg", "\\di", "\\dl",
"\\dn", "\\do", "\\dp", "\\drds", "\\ds", "\\dS", "\\dt", "\\dT", "\\dv", "\\du",