RE: Support tab completion for upper character inputs in psql

tanghy.fnst@fujitsu.com <tanghy.fnst@fujitsu.com>

From: "tanghy.fnst@fujitsu.com" <tanghy.fnst@fujitsu.com>
To: Tom Lane <tgl@sss.pgh.pa.us>, Kyotaro Horiguchi <horikyota.ntt@gmail.com>, Laurenz Albe <laurenz.albe@cybertec.at>
Cc: "smithpb2250@gmail.com" <smithpb2250@gmail.com>, "peter.eisentraut@enterprisedb.com" <peter.eisentraut@enterprisedb.com>, "david.zhang@highgo.ca" <david.zhang@highgo.ca>, "tgl@sss.pgh.pa.us" <tgl@sss.pgh.pa.us>, "pgsql-hackers@lists.postgresql.org" <pgsql-hackers@lists.postgresql.org>
Date: 2021-06-23T12:43:53Z
Lists: pgsql-hackers

Attachments

Hi 

I've updated the patch to V8 since Tom, Kyotaro and Laurenz discussed the lower case issue of German/Turkish language at [1].

Differences from V7 are:
* Add a function valid_input_text which checks the input text to see if it only contains alphabet letters, numbers etc.
* Delete the flag setting of "completion_case_sensitive=false" which introduced in V1 patch and no use now.

As you can see, now the patch limited the lower case transform of the input to alphabet letters.
By doing that, language like German/Turkish will not affected by this patch.

Any comment or suggestion on this patch is very welcome.

[1]
https://www.postgresql.org/message-id/1282887.1619151455%40sss.pgh.pa.us
https://www.postgresql.org/message-id/20210423.144443.2058612313278551429.horikyota.ntt%40gmail.com
https://www.postgresql.org/message-id/a75a6574c0e3d4773ba20a73d493c2c9983c0657.camel%40cybertec.at

Regards,
Tang

Commits

  1. Fix minor memory leaks in psql's tab completion.

  2. Further tweaks for psql's new tab-completion logic.

  3. Treat case of tab-completion keywords a bit more carefully.

  4. psql: improve tab-complete's handling of variant SQL names.

  5. Make PQcancel use the PGconn's tcp_user_timeout and keepalives settings.

  6. Use a WaitLatch for vacuum/autovacuum sleeping