pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Michael Paesold <mpaesold@gmx.at>
To: Ross J. Reedstrom <reedstrm@rice.edu>
To: Jiaqing Wang <jjw72@swbell.net>
Cc: pgsql-sql@postgresql.org
Subject: Re: weird situation, BUG or I'm not doing it right
Date: Sun, 25 Aug 2002 14:49:21 +0200
Message-ID: <002201c24c35$d5bd0ef0$0100a8c0@beeblebrox> (raw)
References: <KCEJKHPEBJGGCDBEMMNKIEGCCBAA.jjw72@swbell.net>
	<20020825042730.GA6376@rice.edu>

Ross J. Reedstrom wrote:

> On Sat, Aug 24, 2002 at 10:56:31PM -0700, Jiaqing Wang wrote:
> > Hello,
> >
> > I found below situation weird, it seems to me a bug.
> >
> > backend=> select * from valid_addr where state_abrev=upper('pr');
> >  zip_code | city_name | state_abrev
> > ----------+-----------+-------------
> > (0 rows)
> >
> > while "select * from valid_addr where state_abrev='PR';" produces
following
> > output
> >
> <20 lines of output>
>
> You left out the critical piece: what's the schema for the table
valid_addr?
> I'll deduce that the column "state_abrev" is defined as something like
> 'char(4)'. It needs to be either char(2) (if _all_ state abbreviations are
> guarenteed to be only 2) or as text. fixed with char fields are padded
with
> blanks. Not a bug, but an feature of the SQL standard.
>
> Ross

Then, why is 'PR' blank padded to char(?) and upper('pr') not?
It seems that when comparing char with text, the comparision is done
as text, not as bpchar.

billing=# select 'A'::char(2) = upper('a');
 ?column?
----------
 f

billing=# select 'A'::char(2) = upper('a')::bpchar;
 ?column?
----------
 t


Regards,
Michael Paesold




view thread (5+ messages)  latest in thread

Message-ID: <002201c24c35$d5bd0ef0$0100a8c0@beeblebrox>
Permalink:  ../002201c24c35$d5bd0ef0$0100a8c0@beeblebrox/
Also on:    postgresql.org/message-id/002201c24c35$d5bd0ef0$0100a8c0@beeblebrox

 · 

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: mpaesold@gmx.at, reedstrm@rice.edu, jjw72@swbell.net
  Subject: Re: weird situation, BUG or I'm not doing it right
  In-Reply-To: <002201c24c35$d5bd0ef0$0100a8c0@beeblebrox>

* 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