AW: AW: Truncation of char, varchar types - Mailing list pgsql-hackers

From Zeugswetter Andreas SB
Subject AW: AW: Truncation of char, varchar types
Date
Msg-id 11C1E6749A55D411A9670001FA687963368280@sdexcsrv1.f000.d0188.sd.spardat.at
Whole thread Raw
Responses Re: AW: AW: Truncation of char, varchar types  (Peter Eisentraut <peter_e@gmx.net>)
List pgsql-hackers
> > > Excessively long values are currently silently truncated when they are
> > > inserted into char or varchar fields.  This makes the entire notion of
> > > specifying a length limit for these types kind of useless, IMO.  Needless
> > > to say, it's also not in compliance with SQL.
> >
> > To quote Tom "paragraph and verse please" :-)
> 
> SQL 1992, 9.2 GR 3 e)
> 
> """
> If the data type of T is variable-length character string and
> the length in characters M of V is greater than the maximum
> length in characters L of T, then,
> 
> Case:
> 
>  i) If the rightmost M-L characters of V are all <space>s, then
>     the value of T is set to the first L characters of V and
>     the length in characters of T is set to L.
> 
> ii) If one or more of the rightmost M-L characters of V are
>     not <space>s, then an exception condition is raised: data
>                           ^^^^^^^^^
>     exception-string data, right truncation.
> """

Thank you. Is an "exception condition" necessarily an error, or 
is a warning also an exception condition ?

> Similarly in SQL 1999 and for other data types.
> 
> > > How do people feel about changing this to raise an error in this
> > > situation?
> >
> > Can't do.
> 
> Why not?

Because other db's only raise a warning. Of course we don't want to
copy that behavior if they are not conformant. See above question.

Andreas


pgsql-hackers by date:

Previous
From: Andrew McMillan
Date:
Subject: Re: Speaking of Indexing... (Text indexing)
Next
From: darcy@druid.net (D'Arcy J.M. Cain)
Date:
Subject: Re: Re: HOLD THE PRESSES!! ... pg_dump from v7.0.3 can't import to v7.1?