Re: proposal - assign result of query to psql variable

Pavel Stehule <pavel.stehule@gmail.com>

From: Pavel Stehule <pavel.stehule@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: David Fetter <david@fetter.org>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2012-07-28T16:11:21Z
Lists: pgsql-hackers

Attachments

Hello

2012/7/27 Tom Lane <tgl@sss.pgh.pa.us>:
> Pavel Stehule <pavel.stehule@gmail.com> writes:
>> 2012/7/26 David Fetter <david@fetter.org>:
>>>>> How about
>>>>> \gset var1,,,var2,var3...
>
>>>> I don't like this - you can use fake variable - and ignoring some
>>>> variable has no big effect on client
>
>>> Why assign to a variable you'll never use?
>
>> so why you get data from server, when you would not to use it ?
>
> Yeah.  I don't see why you'd be likely to write a select that computes
> columns you don't actually want.
>
>> Tom - your proposal release of stored dataset just before next
>> statement, not like now on the end of statement?
>
> Huh?  I think you'd assign the values to the variables and then PQclear
> the result right away.

yes - I didn't understand \g mechanism well.

Here is patch - it is not nice at this moment and it is little bit
longer than I expected - but it works

It supports David's syntax

postgres=# select 'Hello', 'World' \gset a,b
postgres=# \echo :'a' :'b'
'Hello' 'World'
postgres=# select 'Hello', 'World';
 ?column? │ ?column?
──────────┼──────────
 Hello    │ World
(1 row)

postgres=# \gset a
to few target variables
postgres=# \gset a,
postgres=# \echo :'a'
'Hello'

Regards

Pavel





>
>                         regards, tom lane

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Fix oversight in new code for printing rangetable aliases.