"Guy Rouillier" <guyr@masergy.com> writes:
> Tom Lane wrote:
>> No, it's a feature, as per extensive discussion some time ago when we
>> made it do that. The general rule is that trailing spaces in a
>> char(n) are semantically insignificant.
> How did you reach the opposite conclusion for varchar? If anything, I
> would think that stripping pad characters makes more sense for varchar
> than it does for char.
But they're not pad characters in varchar --- remember varchar is
implicitly NO PAD (vs char which is implicitly PAD SPACE).
The spec would like us to separate out the PAD attribute from the
datatypes, and eventually we may get around to doing that, but in
the meantime it's hardly likely that we'll drop functionality by
smushing the datatypes together. Seeing that there's no performance
advantage to char in Postgres, we might as well not have the separate
datatype at all if we're going to give it semantics identical to varchar.
regards, tom lane