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",