pgsql: Fix psql's tab-completion of enum label values.

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Fix psql's tab-completion of enum label values.
Date: 2022-01-16 19:59:34
Message-ID: E1n9Bgc-0004ZK-6P@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Fix psql's tab-completion of enum label values.

Since enum labels have to be single-quoted, this part of the
tab completion machinery got side-swiped by commit cd69ec66c.
A side-effect of that commit is that (at least with some versions
of Readline) the text string passed for completion will omit the
leading quote mark of the enum label literal. Libedit still acts
the same as before, though, so adapt COMPLETE_WITH_ENUM_VALUE so
that it can cope with either convention.

Also, when we fail to find any valid completion, set
rl_completion_suppress_quote = 1. Otherwise readline will
go ahead and append a closing quote, which is unwanted.

Per report from Peter Eisentraut. Back-patch to v13 where
cd69ec66c came in.

Discussion: https://postgr.es/m/8ca82d89-ec3d-8b28-8291-500efaf23b25@enterprisedb.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/fe75517443b7c38f5251d007d06321655ce6c0b6

Modified Files
--------------
src/bin/psql/t/010_tab_completion.pl | 13 ++++++++-
src/bin/psql/tab-complete.c | 51 +++++++++++++++++++++++++++++++-----
2 files changed, 57 insertions(+), 7 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2022-01-16 21:39:36 pgsql: Teach hash_ok_operator() that record_eq is only sometimes hashab
Previous Message Tom Lane 2022-01-16 18:29:12 pgsql: Clean up TAP tests' usage of wait_for_catchup().