Re: proposal psql \gdesc

Fabien COELHO <coelho@cri.ensmp.fr>

From: Fabien COELHO <coelho@cri.ensmp.fr>
To: Pavel Stehule <pavel.stehule@gmail.com>
Cc: PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2017-05-08T07:08:29Z
Lists: pgsql-hackers
Hello Pavel,

A complement to my previous comments:

> Also, maybe it would be better if the statement is cleaned up server side at 
> the end of the execution. Not sure how to achieve that, though, libpq seems 
> to lack the relevant function:-(
>
>  """although there is no libpq function for deleting a prepared
>  statement, the SQL DEALLOCATE statement can be used for that purpose."""
>
> Hmmm... I have not found how to use DEALLOCATE to cleanup an unnamed 
> statement, it does not allow a "zero-length" name. Maybe it could be extended 
> somehow, or a function could be provided for the purpose, eg
> by passing a NULL query to PQprepare...

After giving it some thoughts, I see three possible solutions:

0. Do nothing about it.
    I would prefer the prepare is cleaned up.

1. assign a special name, eg "_psql_gdesc_", so that
    DEALLOCATE "_psql_gdesc_" can be issued afterwards.

2. allow executing DEALLOCATE "";

3. add the missing PQdeallocate function to libpq?

Version 2 is server side, so it would not be compatible when connected 
to server running previous versions. Not desirable.

Version 3 may have implication at the protocol level and server side, if 
so it does not seem desirable to introduce such a change.

So maybe only version 1 is possible.

-- 
Fabien.


Commits

  1. Add \gdesc psql command.