Subject: A tiny improvement of psql

From: Kevin Wang <[email-masked]>
Date: Sun, 24 Dec 2023 13:17:38 -0500

Hello hackers!

I am an Oracle/PostgreSQL DBA, I am not a PG hacker.  During my daily job,
I find a pain that should be fixed.

As you know, we can use the UP arrow key to get the previous command to
avoid extra typing. This is a wonderful feature to save the lives of every
DBA. However, if I type the commands like this sequence: A, B, B, B, B, B,
B,  as you can see, B is the last command I execute.

But if I try to get command A, I have to press the UP key 7 times.  I think
the best way is: when you press the UP key, plsql should show the command
that is different from the previous command, so the recall sequence should
be B -> A, not B -> B -> ... -> A.  Then I only press the UP key 2 times to
get command A.

I think this should change little code in psql, but it will make all DBA's
lives much easier.  This is a strong requirement from the real DBA. Hope to
get some feedback on this.

Another requirement is: could we use / to repeat executing the last command
in plsql just like sqlplus in Oracle?

I will try to learn how to fix it sooner or later, but if some
proficient hacker focuses on this, it can be fixed quickly, I guess.

Thoughts?

Regards,

Kevin

---

From: Tom Lane <[email-masked]>
Date: Tue, 26 Dec 2023 11:36:41 -0500

> be B -> A, not B -> B -> ... -> A.  Then I only press the UP key 2 times to

This is driven by libreadline, not anything we control.  I have
seen the behavior you describe in some other programs, so I wonder
whether it's configurable.

> in plsql just like sqlplus in Oracle?

I'm pretty certain you can configure this for yourself with readline.

			regards, tom lane

---

From: Vik Fearing <[email-masked]>
Date: Tue, 26 Dec 2023 22:45:31 +0100

> whether it's configurable.

It is kind of something we control.  Per the psql docs, setting

     HISTCONTROL=ignoredups

will do the trick.

https://www.postgresql.org/docs/current/app-psql.html#APP-PSQL-VARIABLES-HISTCONTROL
-- 
Vik Fearing