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