Search Postgresql Archives

Re: [pgsql-advocacy] Oracle buys Innobase

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

 



create table fooa (col1 varchar(30))
go
create table bara (col1 varchar(300))
go
insert into fooa values ('Danniel ')
go
insert into bara values ('Danniel   ')
go
select * from fooa,bara where fooa.col1=bara.col1
go

Returns:
Danniel 	Danniel   

I think that the issue is:
Does PostgreSQL use something other than <space> as the pad character?
If so, what character is that (and why choose it over <space>)?
If not, then PostgreSQL is clearly returning the wrong results.

> -----Original Message-----
> From: Terry Fielder [mailto:terry@xxxxxxxxxxxxxxxxxxxx]
> Sent: Wednesday, October 19, 2005 2:02 PM
> To: Dann Corbit
> Cc: Marc G. Fournier; Richard_D_Levine@xxxxxxxxxxxx; pgsql-
> general@xxxxxxxxxxxxxx
> Subject: Re: [pgsql-advocacy]  Oracle buys Innobase
> 
> 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


[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