Hi Dann
Without looking at the internals to see if the 1 column or the other is
being converted to the other columns type before the compare, it really
demonstrates nothing.
It could perhaps be used to help demonstrate that when comparing a
datatype of CHAR to VARCHAR that
MS-SQL converts the VARCHAR to CHAR and then does the compare
Postgres converts the CHAR to VARCHAR and then does the compare
But there isn't even enough evidence here to support that.
Terry
Dann Corbit wrote:
create table foo (col1 varchar(30))
go
create table bar (col1 char(30))
go
insert into foo values ('Danniel ')
go
insert into bar values ('Danniel ')
go
select * from foo,bar where foo.col1=bar.col1
go
Result set:
Danniel Danniel
-----Original Message-----
From: Terry Fielder [mailto:terry@xxxxxxxxxxxxxxxxxxxx]
Sent: Wednesday, October 19, 2005 1:39 PM
To: Dann Corbit
Cc: Marc G. Fournier; Richard_D_Levine@xxxxxxxxxxxx; pgsql-
general@xxxxxxxxxxxxxx
Subject: Re: [pgsql-advocacy] Oracle buys Innobase
I agree with you, but...
Actually that's not how the compare works usually.
Generally one of the operands is converted to the same datatype as the
other, and THEN the compare is performed.
I expect MS SQL is converting a 'sdas' typeless string to be assumed
CHAR and Postgresql is converting a 'sdas' typeless string to be
assumed
VARCHAR.
Hence, the different behaviour.
Terry
Dann Corbit wrote:
Would you want varchar(30) 'Dann Corbit' to compare equal to
bpchar(30)
'Dann Corbit'?
I would.
If both are considered character types by the language, then they
must
compare that way.
Perhaps there are some nuances that I am not aware of. But that is
how
things ought to behave, if I were king of the forest.
-----Original Message-----
From: pgsql-general-owner@xxxxxxxxxxxxxx [mailto:pgsql-general-
owner@xxxxxxxxxxxxxx] On Behalf Of Terry Fielder
Sent: Wednesday, October 19, 2005 12:37 PM
To: Marc G. Fournier
Cc: Richard_D_Levine@xxxxxxxxxxxx; pgsql-general@xxxxxxxxxxxxxx
Subject: Re: [pgsql-advocacy] Oracle buys Innobase
OK, I am not an expert on the SQL standard, but I thought the
definition
varied by data type e.g. varchar <> bpchar
Terry
Marc G. Fournier wrote:
On Wed, 19 Oct 2005, Richard_D_Levine@xxxxxxxxxxxx wrote:
I was referring to trailing blanks, but did not explicitly say it,
though showed it in the examples. I am pretty sure that the SQL
standard says that trailing whitespace is insignificant in string
comparison.
Then we are broken too :)
# select 'a ' = 'a ';
?column?
----------
f
(1 row)
----
Marc G. Fournier Hub.Org Networking Services
(http://www.hub.org)
Email: scrappy@xxxxxxx Yahoo!: yscrappy ICQ:
7615664
---------------------------(end of
broadcast)---------------------------
TIP 4: Have you searched our list archives?
http://archives.postgresql.org
--
Terry Fielder
terry@xxxxxxxxxxxxxxxxxx
Associate Director Software Development and Deployment
Great Gulf Homes / Ashton Woods Homes
Fax: (416) 441-9085
---------------------------(end of
broadcast)---------------------------
TIP 6: explain analyze is your friend
--
Terry Fielder
terry@xxxxxxxxxxxxxxxxxx
Associate Director Software Development and Deployment
Great Gulf Homes / Ashton Woods Homes
Fax: (416) 441-9085
--
Terry Fielder
terry@xxxxxxxxxxxxxxxxxx
Associate Director Software Development and Deployment
Great Gulf Homes / Ashton Woods Homes
Fax: (416) 441-9085
---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster