diff options
Diffstat (limited to 'src/bin/psql/command.c')
-rw-r--r-- | src/bin/psql/command.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/bin/psql/command.c b/src/bin/psql/command.c index 4aaf657cce8..40eba61b37c 100644 --- a/src/bin/psql/command.c +++ b/src/bin/psql/command.c @@ -1970,8 +1970,14 @@ do_connect(enum trivalue reuse_previous_specification, psql_error("\\connect: %s", PQerrorMessage(n_conn)); if (o_conn) { + /* + * Transition to having no connection. Keep this bit in sync + * with CheckConnection(). + */ PQfinish(o_conn); pset.db = NULL; + ResetCancelConn(); + UnsyncVariables(); } } @@ -1985,7 +1991,8 @@ do_connect(enum trivalue reuse_previous_specification, /* * Replace the old connection with the new one, and update - * connection-dependent variables. + * connection-dependent variables. Keep the resynchronization logic in + * sync with CheckConnection(). */ PQsetNoticeProcessor(n_conn, NoticeProcessor, NULL); pset.db = n_conn; @@ -2060,7 +2067,8 @@ connection_warnings(bool in_startup) sverbuf, sizeof(sverbuf))); #ifdef WIN32 - checkWin32Codepage(); + if (in_startup) + checkWin32Codepage(); #endif printSSLInfo(); } |