Hi, here's a new patch. This one makes some changes to the criteria for which functions to include; namely filtering out trigger functions and those that take or return values of type "internal"; and including aggregate and window functions. Some of the other checks could be removed as they were covered by the "internal" check.
It also uses the server version to determine which query to run. I have not written a custom query for every version from 7.1! I've split up the server history into: pre-7.3 - does not even have pg_function_is_visible. Not supported. pre-9.0 - does not have several support functions in types, languages, etc. We don't bother filtering using columns in other tables. pre-9.6 - does not have various aggregate support functions. 9.6 or later - the full query I was able to test against 9.2, 9.6, and 10 servers, but compiling and testing the older releases was a bit much for a Friday evening. I'm not sure there's much value in support for old servers, as long as we can make completion queries fail a bit more gracefully. Edmund
psql-select-tab-completion-v2.patch
Description: Binary data