| From: | "Daniel Verite" <daniel(at)manitou-mail(dot)org> | 
|---|---|
| To: | "Gilles Darold" <gilles(dot)darold(at)dalibo(dot)com> | 
| Cc: | "Pavel Stehule" <pavel(dot)stehule(at)gmail(dot)com>,"PostgreSQL Hackers" <pgsql-hackers(at)postgresql(dot)org> | 
| Subject: | Re: proposal: psql \setfileref | 
| Date: | 2016-10-10 12:38:20 | 
| Message-ID: | 401c6510-9a4c-439b-96c6-43c60a330b30@mm | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers | 
Gilles Darold wrote:
>    postgres=# \setfileref b /dev/random
>    postgres=# insert into test (:b);
> 
> Process need to be killed using SIGTERM.
This can be fixed by setting sigint_interrupt_enabled to true
before operating on the file. Then ctrl-C would be able to cancel
the command.
See comment in common.c, above the declaration of 
sigint_interrupt_enabled:
/*
 [....]
 * SIGINT is supposed to abort all long-running psql operations, not only
 * database queries.  In most places, this is accomplished by checking
 * cancel_pressed during long-running loops.  However, that won't work when
 * blocked on user input (in readline() or fgets()).  In those places, we
 * set sigint_interrupt_enabled TRUE while blocked, instructing the signal
 * catcher to longjmp through sigint_interrupt_jmp.  We assume readline and
 * fgets are coded to handle possible interruption.  (XXX currently this does
 * not work on win32, so control-C is less useful there)
 */
Best regards,
-- 
Daniel Vérité
PostgreSQL-powered mailer: http://www.manitou-mail.org
Twitter: @DanielVerite
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Andreas Joseph Krogh | 2016-10-10 12:55:10 | Re: pg_upgrade 9.5 -> 9.6 fails when pg_largeobject is in separate tablespace | 
| Previous Message | Michael Paquier | 2016-10-10 12:37:37 | Using pg_ctl promote -w in TAP tests |