Search Postgresql Archives

Re: [pgsql-advocacy] Oracle buys Innobase

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 20 Oct 2005, Doug Quale wrote:

"Guy Rouillier" <guyr@xxxxxxxxxxx> writes:

Doug Quale wrote:

# select 'a'::char(8) = 'a '::char(8);
 ?column?
----------
 t
(1 row)

Trailing blanks aren't significant in fixed-length strings, so the
question is whether Postgresql treats comparison of varchars right.

This result is being misinterpreted.

select length('a'::char(8)) ==> 1
select length('a '::char(8)) ==> 1

So it isn't that the two different strings are comparing equal.  The
process of casting them to char(8) is trimming the blanks, so by the
time they become fixed length strings, they are indeed equal.

Huh??? What version of PG are you using?  On 7.4.9,


test=# select length('a'::char(8));
length
--------
     8
(1 row)

test=# select length('a '::char(8));
length
--------
     8
(1 row)

The truncation you describe would simply be wrong.

ams=# select length('a '::char(8));
 length
--------
      1
(1 row)

ams=# select version();
                               version
----------------------------------------------------------------------
 PostgreSQL 8.0.2 on i386-portbld-freebsd4.11, compiled by GCC 2.95.4
(1 row)

ams=#


----
Marc G. Fournier           Hub.Org Networking Services (http://www.hub.org)
Email: scrappy@xxxxxxx           Yahoo!: yscrappy              ICQ: 7615664

---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux