Look back in the stack and you will find that I have quoted chapter and
verse (see the attached html file in a previous email that I sent).
This is in relation to the comparison operator.
> -----Original Message-----
> From: John D. Burger [mailto:john@mitre.org]
> Sent: Thursday, October 20, 2005 12:53 PM
> To: Dann Corbit
> Cc: <pgsql-hackers@postgresql.org>; pgsql-general General
> Subject: Re: [GENERAL] [HACKERS] 'a' == 'a '
>
> [Removed all the non-list addresses]
>
> Dann Corbit wrote:
>
> > Let me make something clear:
> > When we are talking about padding here it is only in the context of
a
> > comparison operator and NOT having anything to do with storage.
> >
> > Given two strings of different in a comparison, most database
systems
> > (by default) will blank pad the shorter string so that they are the
> > same
> > length before performing the comparison.
> >
> > Hence, you will see that 'Danniel' = 'Danniel ' is true in most
cases.
> >
> > Now, this really does not have any connection with storage or
varchar
> > or
> > bpchar or char or text or anything like that.
>
> Is this really true??? My understanding of the spec was that this was
> =exactly= the difference between char(N) and varchar(N) - the former
is
> padded to length N when you store it, or at least the DB has to act as
> if this is the case. Can someone quote the appropriate chapter and
> verse?
Again, the operations that I was talking about literally have nothing to
do with the internal data type of the string, as long as it is
fundamentally a character type. I was referring to what happens when
two strings are involved in a comparison operation. The standard spells
it out very clearly. Whether something is blank padded or not during a
comparison has nothing whatever to do with the type of the string and
everything to do with the collating sequence.
> Thanks.
>
> - John D. Burger
> MITRE