Re: PATCH: psql tab completion for SELECT

Vik Fearing <vik.fearing@2ndquadrant.com>

From: Vik Fearing <vik.fearing@2ndquadrant.com>
To: Tom Lane <tgl@sss.pgh.pa.us>, Edmund Horner <ejrh00@gmail.com>
Cc: Andres Freund <andres@anarazel.de>, pgsql-hackers@lists.postgresql.org, pgsql-hackers@postgresql.org
Date: 2018-01-18T16:37:30Z
Lists: pgsql-hackers
On 01/18/2018 01:07 AM, Tom Lane wrote:
> Edmund Horner <ejrh00@gmail.com> writes:
>> On 15 January 2018 at 15:45, Andres Freund <andres@anarazel.de> wrote:
>>> All worries like this are supposed to check the server version.
> 
>> In psql there are around 200 such tab completion queries, none of
>> which checks the server version.  Many would cause the user's
>> transaction to abort if invoked on an older server.  Identifying the
>> appropriate server versions for each one would be quite a bit of work.
> 
>> Is there a better way to make this more robust?
> 
> Maybe it'd be worth the effort to wrap tab completion queries in
> SAVEPOINT/RELEASE SAVEPOINT if we're inside a user transaction
> (which we could detect from libpq's state, I believe).
> 
> That seems like an independent patch, but it'd be a prerequisite
> if you want to issue tab completion queries with version dependencies.
> 
> A bigger point here is: do you really want SELECT tab completion
> to work only against the latest and greatest server version?
> That would become an argument against committing the feature at all;
> maybe not enough to tip the scales against it, but still a demerit.

I don't really want such a patch.  I use new psql on old servers all the
time.
-- 
Vik Fearing                                          +33 6 46 75 15 36
http://2ndQuadrant.fr     PostgreSQL : Expertise, Formation et Support


Commits

  1. In psql, restore old behavior of Query_for_list_of_functions.

  2. Add infrastructure to support server-version-dependent tab completion.