I submitted essentially this same patch over a year ago and Tom vetoed
it: http://www.postgresql.org/message-id/3741.1325731...@sss.pgh.pa.us

The thread moved to -hackers at some point and I made some further
enhancements: 
http://www.postgresql.org/message-id/20120108201802.ga31...@llserver.lakeliving.com

Never went anywhere though.

-Ryan P. Kelly

On Tue, May 05/14/13, 2013 at 11:35:36AM -0400, Peter Eisentraut wrote:
> Sometimes, the psql startup hangs when it cannot resolve or connect to a
> host.  Intuitively, I would like to press Ctrl+C and correct the
> connection string or investigate.  But that doesn't work because Ctrl+C
> is already bound to the query cancel handler by that time.
> 
> It seems to me that there is no point in setting up the cancel handler
> before the database connection is established.  Example patch attached.
>  Comments?

> diff --git a/src/bin/psql/startup.c b/src/bin/psql/startup.c
> index 5d7fe6e..65a1cde 100644
> --- a/src/bin/psql/startup.c
> +++ b/src/bin/psql/startup.c
> @@ -111,8 +111,6 @@ static void parse_psql_options(int argc, char *argv[],
>       setvbuf(stderr, NULL, _IONBF, 0);
>  #endif
>  
> -     setup_cancel_handler();
> -
>       pset.progname = get_progname(argv[0]);
>  
>       pset.db = NULL;
> @@ -249,6 +247,8 @@ static void parse_psql_options(int argc, char *argv[],
>               exit(EXIT_BADCONN);
>       }
>  
> +     setup_cancel_handler();
> +
>       PQsetNoticeProcessor(pset.db, NoticeProcessor, NULL);
>  
>       SyncVariables();

> 
> -- 
> Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-hackers



-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to