At Sun, 07 Feb 2021 13:55:00 -0500, Tom Lane <t...@sss.pgh.pa.us> wrote in > "Tang, Haiying" <tanghy.f...@cn.fujitsu.com> writes: > > When using psql I found there's no tab completion for upper character > > inputs. It's really inconvenient sometimes so I try to fix this problem in > > the attached patch. > > This looks like you're trying to force case-insensitive behavior > whether that is appropriate or not. Does not sound like a good > idea.
Agreed. However I'm not sure what the OP exactly wants, \set behaves in a different but similar way. =# \set c[tab] =# \set COMP_KEYWORD_CASE _ However set doesn't. If it is what is wanted, the following change on Query_for_list_of_set_vars works (only for the case of SET/RESET commands). diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c index 5f0e775fd3..5c2a263785 100644 --- a/src/bin/psql/tab-complete.c +++ b/src/bin/psql/tab-complete.c @@ -725,7 +725,8 @@ static const SchemaQuery Query_for_list_of_statistics = { " UNION ALL SELECT 'role' "\ " UNION ALL SELECT 'tablespace' "\ " UNION ALL SELECT 'all') ss "\ -" WHERE substring(name,1,%d)='%s'" +" WHERE substring(name,1,%1$d)='%2$s' "\ +" OR pg_catalog.lower(substring(name,1,%1$d))=pg_catalog.lower('%2$s')" #define Query_for_list_of_show_vars \ "SELECT name FROM "\ =# set AP[tab] =# set application_name _ regards. -- Kyotaro Horiguchi NTT Open Source Software Center