BUG #4944: Problems with using \set variables as strings in select statements - Mailing list pgsql-bugs

From Bruno Scovoli Santos
Subject BUG #4944: Problems with using \set variables as strings in select statements
Date
Msg-id 200907271350.n6RDomVD056020@wwwmaster.postgresql.org
Whole thread Raw
Responses Re: BUG #4944: Problems with using \set variables as strings in select statements  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: BUG #4944: Problems with using \set variables as strings in select statements  (Rolf Jentsch <RJentsch@electronicpartner.de>)
List pgsql-bugs
The following bug has been logged online:

Bug reference:      4944
Logged by:          Bruno Scovoli Santos
Email address:      bruno.scovoli@gmail.com
PostgreSQL version: 8.3.7
Operating system:   Ubuntu 9.04 Jaunty Jackalope
Description:        Problems with using \set variables as strings in select
statements
Details:

I hava a table as follows:

euclidhardware=# select * from fabricantes;
 id_fabricante |   nome    |     distribuidor     | descricao
---------------+-----------+----------------------+-----------
             1 | Genius    | Atera informática    | -
             2 | Logitech  | Atera informática    | -
             3 | Epson     | Kalunga              | -
             4 | HP        | Kalunga              | -
             5 | Lexmark   | Kalunga              | -
             6 | Gigabyte  | IMICROS              | -
             7 | ASUS      | IMICROS              | -
             8 | ABIT      | IMICROS              | -
             9 | AMD       | IMICROS              | -
            11 | Intel     | Balao da informática | -
            12 | Kingston  | Balao da informática | -
            13 | Corsair   | IMICROS              | -
            14 | Smartdata | ShopInfo             | -
           299 | ashhj     | 78hkj                | 8jhkljk


When I do:

brunodb=# \set fab 11
brunodb=# select * from fabricantes where id_fabricante = :fab;
 id_fabricante | nome  |     distribuidor     | descricao
---------------+-------+----------------------+-----------
            11 | Intel | Balao da informática | -

OK, I get the right result. But it's seems that there is a bug for this:

brunodb=# \set nom 'Intel'
euclidhardware=# select * from fabricantes where nome like :nom;
ERROR:  column "intel" does not exist
LINE 1: select * from fabricantes where nome like Intel;

Please, I have tried exaustively many other ways to achieve this result, and
searched many foruns. I dont realize where is my error, I think that it is a
bug?

Thanks in advance,

Bruno

pgsql-bugs by date:

Previous
From: Magnus Hagander
Date:
Subject: Re: GetTokenInformation() and FreeSid() at port/exec.c
Next
From: Tom Lane
Date:
Subject: Re: BUG #4944: Problems with using \set variables as strings in select statements