On 10/27/24 20:03, Tom Lane wrote:
> Tomas Vondra <tomas@vondra.me> writes:
>> I'm not terribly familiar with libedit, so can't say if it's a bug in
>> libedit, or if we're just using it wrong in some way. I investigated
>> that while on a flight from pgconf.eu, but can't look into this further.
>> So let me at least share the behavior I observed, and what I found.
>> Note: All of this is with libedit-3.1-53.20240808cvs.fc40.x86_64, which
>> is what I currently get in Fedora 40.
>
> libedit has been a hot mess for a long time. psql's input.c has
> workarounds for assorted bugs that it has or had in prior versions,
> and what I suspect is that latest libedit has a different set of bugs.
>
> FWIW, I don't observe any particular misbehavior with the very ancient
> libedit that macOS ships. On Fedora 39, I notice something related to
> what you say: it seems like the "\q" ending a session gets repeated
> into .psql_history by the next session. I'm surprised that it's not
> exactly the same as your results though, because it seems to be the
> same source version:
>
> $ rpm -q libedit
> libedit-3.1-53.20240808cvs.fc39.x86_64
>
That's probably because I usually terminate psql by Ctrl-D, not by
typing "\q". But yeah, if I use "\q" it gets added twice.
> Didn't try the too-many-lines behavior, but it looks like that
> is implemented totally by history_truncate_file(), so if that's
> busted it's surely their fault.
>
Sounds likely. What surprises me a bit, I haven't found any reports of
particularly similar bugs ... I'd have expected other people to hit this
too, but who knows.
--
Tomas Vondra