In psql, the tab completion always converts key words to upper case. In
practice, I and I think most users type in lower case. So then you end
up with commands looking like this:
=> alter TABLE foo add CONSTRAINT bar check (a > 0);
To address this, I have implemented a slightly different completion mode
that looks at the word being completed and converts the completed word
to the case of the original word. (Well, it looks at the first letter.)
In fact, since almost all completions in psql are of this nature, I made
this the default mode for COMPLETE_WITH_CONST and COMPLETE_WITH_LIST and
added a new macro COMPLETE_WITH_LIST_CS that uses the old case-sensitive
behavior. The latter is used mainly for completing backslash commands.
After playing with this a little, I find the behavior more pleasing.
Less yelling. ;-)
Patch attached.