Re: proposal psql \gdesc

From: Fabien COELHO <coelho(at)cri(dot)ensmp(dot)fr>
To: Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
Cc: PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: proposal psql \gdesc
Date: 2017-05-09 16:15:14
Message-ID: alpine.DEB.2.20.1705091721400.29373@lancre
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers


Hello Pavel,

>> Patch applies cleanly and compiles.

Idem for v2. "make check" ok. Tests look good.

>> I would suggest some rewording, maybe:
>>
>> "Show the description of the result of the current query buffer without
>> actually executing it, by considering it a prepared statement."
>>
> done

Ok. If some native English speaker can clarify the sentence further, or
imprive it anyway, thanks in advance!

>> SELECT $1 AS unknown_type \gdesc
>
> It is not unknown type - the default placeholder type is text

Indeed. I really meant something like:

calvin=# SELECT $1 + $2 \gdesc
ERROR: operator is not unique: unknown + unknown
...

More comments:

I propose that the help message could be "describe result of query without
executing it".

I found an issue. \gdesk fails when the command does not return a result:

calvin=# TRUNCATE pgbench_history \gdesc
ERROR: syntax error at or near ")"
LINE 2: (VALUES ) s (name, tp, tpm)

I guess the issue is that PQdescribePrepared returns an empty description,
which is fine, but then the second query should be skipped, and some
message should be output instead, like "no result" or whatever...

This need fixing, and a corresponding test should be added.

Also I would suggest to add a \g after the first test, which would execute
the current buffer after its description, to show that the current buffer
does indeed hold the query:

calvin=# SELECT 1 as one, ... \gdesc \g
-- one | int
-- ...
-- 1 | ...

--
Fabien.

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Petr Jelinek 2017-05-09 16:18:22 Re: logical replication deranged sender
Previous Message Petr Jelinek 2017-05-09 15:43:21 Re: logical replication syntax (was DROP SUBSCRIPTION, query cancellations and slot handling)