On 01/26/2018 01:28 AM, Edmund Horner wrote:
> On 19 January 2018 at 05:37, Vik Fearing <vik.fearing@2ndquadrant.com> wrote:
>> 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.
>
> I'm not sure where we got with this. I really should have put this
> patch in a separate thread, since it's an independent feature.
Yes, it should have been a separate thread.
> The patch mentioned attempts to put savepoints around the tab
> completion query where appropriate.
I am -1 on this idea.
--
Vik Fearing +33 6 46 75 15 36
http://2ndQuadrant.fr PostgreSQL : Expertise, Formation et Support