Thread: Psql Internal Variable question

Psql Internal Variable question

From
Prafulla Tekawade
Date:
Hi,

I am trying to use psql \set and \echo commands to set some internal variables.
My variable starts with single quote and ends with single quote.
That is actual value of the variable.

Eg.
set cur_db 'pgdb'
\echo :cur_db
--I am expecting here 'pgdb' but psql shows pgdb

As mentioned above, I am expecting \echo to return 'pgdb' to me but it returns pgdb.
I tried using escape char, but it did not work.
Can somebody help me?



--
Thanks
Prafulla

Re: Psql Internal Variable question

From
Pavel Stehule
Date:
Hello

\set removes outer quotes

if you use PostgreSQL 9.0 you can use

\set xxx 'Pavel ''Stěhule'

postgres=# \set
AUTOCOMMIT = 'on'
PROMPT1 = '%/%R%# '
PROMPT2 = '%/%R%# '
PROMPT3 = '>> '
VERBOSITY = 'default'
VERSION = 'PostgreSQL 9.1beta1 on x86_64-unknown-linux-gnu, compiled
by gcc (GCC) 4.5.1 20100924 (Red Hat 4.5.1-4), 64-bit'
DBNAME = 'postgres'
USER = 'pavel'
PORT = '5432'
ENCODING = 'UTF8'
EDITOR_LINENUMBER_SWITCH = '+'
HISTSIZE = '6000'
HISTFILE = '~/.psql_history-5432'
xxx = 'Pavel 'Stěhule'

postgres=# \echo :'xxx'

'Pavel ''Stěhule'

Regards

Pavel

2011/6/1 Prafulla Tekawade <prafulla.tekawade@gmail.com>:
> Hi,
>
> I am trying to use psql \set and \echo commands to set some internal
> variables.
> My variable starts with single quote and ends with single quote.
> That is actual value of the variable.
>
> Eg.
> set cur_db 'pgdb'
> \echo :cur_db
> --I am expecting here 'pgdb' but psql shows pgdb
>
> As mentioned above, I am expecting \echo to return 'pgdb' to me but it
> returns pgdb.
> I tried using escape char, but it did not work.
> Can somebody help me?
>
>
>
> --
> Thanks
> Prafulla
>