Skip site navigation (1) Skip section navigation (2)

Re: proposal - assign result of query to psql variable

From: Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: David Fetter <david(at)fetter(dot)org>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: proposal - assign result of query to psql variable
Date: 2012-07-28 16:11:21
Message-ID: (view raw, whole thread or download thread mbox)
Lists: pgsql-hackers

2012/7/27 Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>:
> Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> writes:
>> 2012/7/26 David Fetter <david(at)fetter(dot)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'



>                         regards, tom lane

Attachment: gset.patch
Description: application/octet-stream (12.4 KB)

In response to


pgsql-hackers by date

Next:From: Tom LaneDate: 2012-07-28 16:15:24
Subject: Re: Adding probes for smgr
Previous:From: Bruce MomjianDate: 2012-07-28 16:01:04
Subject: Re: Using pg_upgrade on log-shipping standby servers

Privacy Policy | About PostgreSQL
Copyright © 1996-2017 The PostgreSQL Global Development Group