TR: Like and = - Mailing list pgsql-sql

From Nicolas JOUANIN
Subject TR: Like and =
Date
Msg-id CEEJJOCKHCPFNIOMMIDFMEGGCHAA.n.jouanin@regie-france.com
Whole thread Raw
Responses Re: TR: Like and =
List pgsql-sql
Hi,
 I've got a table , pdi, with a field pro_id defined as char(25). One fied
og this table contains the string '1006666058' plus spaces to fill the 25
length (ie pro_id = '1006666058               '). When I run:  select * from pdi where pdi = '1006666058'  the row is
returned.When I run:  select * from pdi where pdi like '1006666058'  the row is NOT returned.
 

select length(pro_id) where pdi = '1006666058' returns:
length
-----------
25

2 Row(s) affected

1) In PostgreSQL documentation, it's said that without % wildcards like
operates the same as = , it seems not.
2) Why does the = operator return the row ? it shouldn't because of the
trailing spaces.
3) The row was inserted from the COPY command:
COPY pdi FROM STDIN NULL as '' DELIMITER as '|';
VOL|1006666058|0|PART||PART
\.
Why does my field contain trailing spaces ?

Regards and thanks again for your useful help.


PS:
create table pdi (   pmf_id char(4) not null ,   pro_id char(25) not null ,   lng_id char(3) not null ,   pdi_desc
char(50)not null ,   pdi_instr text,   pdi_matchdesc char(50),   CONSTRAINT pk_pdi PRIMARY KEY (pro_id,pmf_id,lng_id)
);

Nicolas.

---------------------------------------------------------------
Nicolas JOUANIN - SA REGIE FRANCE
Village Informatique BP 3002
17030 La Rochelle CEDEX
Tel: 05 46 44 75 76
Fax: 05 46 45 34 17
email: n.jouanin@regie-france.com
Web : www.regie-france.com
---------------------------------------------------------------




pgsql-sql by date:

Previous
From: Richard Huxton
Date:
Subject: Re: virtual table
Next
From: Tom Lane
Date:
Subject: Re: convert_numeric_to_scalar: unsupported type 354210