pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Marcin Stępnicki <mstepnicki@gmail.com>
To: pgsql-sql@postgresql.org
Subject: Re: Potential bug in postgres 8.2.4
Date: Thu, 24 May 2007 13:34:03 +0200
Message-ID: <pan.2007.05.24.11.34.03.780983@gmail.com> (raw)
References: <3D2864D1-BF64-4609-B307-1C70A4FE503F@bobtfish.net>

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@jabber.org *---' http://www.naszedzieci.org 





view thread (9+ messages)  latest in thread

Message-ID: <pan.2007.05.24.11.34.03.780983@gmail.com>
Permalink:  ../pan.2007.05.24.11.34.03.780983@gmail.com/
Also on:    postgresql.org/message-id/pan.2007.05.24.11.34.03.780983@gmail.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: mstepnicki@gmail.com
  Subject: Re: Potential bug in postgres 8.2.4
  In-Reply-To: <pan.2007.05.24.11.34.03.780983@gmail.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox