Обсуждение: Re: [pgsql-advocacy] Oracle buys Innobase

Поиск
Список
Период
Сортировка

Re: [pgsql-advocacy] Oracle buys Innobase

От
"Dann Corbit"
Дата:
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@postgresql.org [mailto:pgsql-general-
> owner@postgresql.org] On Behalf Of Terry Fielder
> Sent: Wednesday, October 19, 2005 12:37 PM
> To: Marc G. Fournier
> Cc: Richard_D_Levine@raytheon.com; pgsql-general@postgresql.org
> Subject: Re: [pgsql-advocacy] [GENERAL] 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@raytheon.com 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@hub.org           Yahoo!: yscrappy              ICQ:
> 7615664
> >
> > ---------------------------(end of
broadcast)---------------------------
> > TIP 4: Have you searched our list archives?
> >
> >               http://archives.postgresql.org
> >
>
> --
> Terry Fielder
> terry@greatgulfhomes.com
> 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

Re: [pgsql-advocacy] Oracle buys Innobase

От
Terry Fielder
Дата:
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@postgresql.org [mailto:pgsql-general-
>>owner@postgresql.org] On Behalf Of Terry Fielder
>>Sent: Wednesday, October 19, 2005 12:37 PM
>>To: Marc G. Fournier
>>Cc: Richard_D_Levine@raytheon.com; pgsql-general@postgresql.org
>>Subject: Re: [pgsql-advocacy] [GENERAL] 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@raytheon.com 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@hub.org           Yahoo!: yscrappy              ICQ:
>>
>>7615664
>>
>>>---------------------------(end of
>
> broadcast)---------------------------
>
>>>TIP 4: Have you searched our list archives?
>>>
>>>              http://archives.postgresql.org
>>>
>>
>>--
>>Terry Fielder
>>terry@greatgulfhomes.com
>>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@greatgulfhomes.com
Associate Director Software Development and Deployment
Great Gulf Homes / Ashton Woods Homes
Fax: (416) 441-9085

Re: [pgsql-advocacy] Oracle buys Innobase

От
Jan Wieck
Дата:
On 10/19/2005 3:46 PM, Dann Corbit wrote:
> Would you want varchar(30) 'Dann Corbit' to compare equal to bpchar(30)
> 'Dann Corbit'?
>
> I would.

wieck=# select 'Jan'::varchar(20) = 'Jan'::char(20);
  ?column?
----------
  t
(1 row)

wieck=# select 'Jan'::char(20) = 'Jan'::varchar(20);
  ?column?
----------
  t
(1 row)

wieck=# select version();
                                version
---------------------------------------------------------------------
  PostgreSQL 8.0.4 on i386-unknown-freebsd4.9, compiled by GCC 2.95.4
(1 row)


Did I miss anything?


Jan

>
> 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@postgresql.org [mailto:pgsql-general-
>> owner@postgresql.org] On Behalf Of Terry Fielder
>> Sent: Wednesday, October 19, 2005 12:37 PM
>> To: Marc G. Fournier
>> Cc: Richard_D_Levine@raytheon.com; pgsql-general@postgresql.org
>> Subject: Re: [pgsql-advocacy] [GENERAL] 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@raytheon.com 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@hub.org           Yahoo!: yscrappy              ICQ:
>> 7615664
>> >
>> > ---------------------------(end of
> broadcast)---------------------------
>> > TIP 4: Have you searched our list archives?
>> >
>> >               http://archives.postgresql.org
>> >
>>
>> --
>> Terry Fielder
>> terry@greatgulfhomes.com
>> 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
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: explain analyze is your friend


--
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#================================================== JanWieck@Yahoo.com #

Re: [pgsql-advocacy] Oracle buys Innobase

От
Tom Lane
Дата:
"Dann Corbit" <DCorbit@connx.com> writes:
> Would you want varchar(30) 'Dann Corbit' to compare equal to bpchar(30)
> 'Dann Corbit'?

> I would.

And your point is?

regression=# select varchar(30) 'Dann Corbit' = char(30) 'Dann Corbit';
 ?column?
----------
 t
(1 row)


            regards, tom lane