From: | Marcin Stępnicki <mstepnicki(at)gmail(dot)com> |
---|---|
To: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: Potential bug in postgres 8.2.4 |
Date: | 2007-05-24 11:34:03 |
Message-ID: | pan.2007.05.24.11.34.03.780983@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Dnia Thu, 24 May 2007 12:20:54 +0100, Tomas Doran napisał(a):
> CREATE TABLE testtable (
> col1 char(1),
> data text
> );
>
> INSERT INTO testtable (col1, data) VALUES ('1', 'foobar'); INSERT INTO
> testtable (col1, data) VALUES ('2', 'foobarbaz');
>
> The following queries all work:
> INSERT INTO testtable (col1, data) VALUES (3::int, 'foobarbazquux');
> SELECT * FROM testtable WHERE col1 = 3::int; SELECT * FROM testtable WHERE
> col1 IN (1); SELECT * FROM testtable WHERE col1 IN (1::int);
>
> However these querys fail on 8.2.4, but work correctly on 8.1: SELECT *
> FROM testtable WHERE col1 IN (1::int, 2::int); SELECT * FROM testtable
> WHERE col1 IN (1, 2);
>
> I could understand if the behavior was the same for single element IN
> clauses, and multiple element IN clauses - however as their behavior is
> different, and it used to work in 8.1....
I'm not sure if I understand you correctly, but it seems that you are
comparing apples to oranges here (integer and character values). I am a
big fan of weakly typed languages like Python myself, but this situation
is different. I'd say that PostgreSQL 8.1 did a cast somewhere "behind the
scenes" but personally I think it is a bad idea. Consider:
SELECT * FROM testtable WHERE col1::int IN (1, 2);
instead.
--
| And Do What You Will be the challenge | http://apcoln.linuxpl.org
| So be it in love that harms none | http://biznes.linux.pl
| For this is the only commandment. | http://www.juanperon.info
`---* JID: Aragorn_Vime(at)jabber(dot)org *---' http://www.naszedzieci.org
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Eisentraut | 2007-05-24 11:51:15 | Re: Potential bug in postgres 8.2.4 |
Previous Message | Tomas Doran | 2007-05-24 11:20:54 | Potential bug in postgres 8.2.4 |