On Wed, Dec 16, 2015 at 1:29 PM, Tom Lane <t...@sss.pgh.pa.us> wrote: > I did some more experimentation and concluded that actually, this problem > has nothing whatsoever to do with pager invocations. What seems to really > be happening is that libreadline activates its SIGWINCH handler only while > it's being called to collect input, which is fine in itself, but *it does > not notice screen resizes that happen when the handler is not active*. > > You can prove this by doing, say, "select pg_sleep(10);" and resizing > the window before the backend comes back. Readline never notices the > resize, even though no pager invocation happens at all. > > So I now think that print.c shouldn't be involved at all, and the right > thing to do is just have gets_interactive() invoke the resize function > immediately before calling readline(). That will still leave a window > for SIGWINCH to be missed, but it's a pretty tiny one.
right -- agreed. > And somebody oughta report this as a libreadline bug ... See https://bugs.python.org/issue23735 for background. Apparently this is expected behavior (and we are far from the only ones complaining about it): "And so we reach where we are. If a SIGWINCH arrives while readline is not active, and the application using callback mode does not catch it and tell readline about the updated screen dimensions (rl_set_screen_size() exists for this purpose), readline will not know about the new size." merlin -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers