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

From Mike Mascari
Subject RE: Truncation of char, varchar types
Date
Msg-id 01C0C1BB.A329E1D0.mascarm@mascari.com
Whole thread Raw
In response to Truncation of char, varchar types  (Peter Eisentraut <peter_e@gmx.net>)
List pgsql-hackers
This is what I get in Oracle 8:

SQL> CREATE TABLE test (value VARCHAR (10));

Table created.

SQL> INSERT INTO test VALUES ('Mike Mascari');
INSERT INTO test VALUES ('Mike Mascari')           *
ERROR at line 1:
ORA-01401: inserted value too large for column


SQL> quit

Of course, if the standard is ambiguous, retaining backwards 
compatibility sure would be nice.

FWIW,

Mike Mascari
mascarm@mascari.com

-----Original Message-----
From:    Zeugswetter Andreas SB [SMTP:ZeugswetterA@wien.spardat.at]
Sent:    Tuesday, April 10, 2001 6:47 AM
To:    'Peter Eisentraut'; PostgreSQL Development
Subject:    AW: [HACKERS] Truncation of char, varchar types


> 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" :-)

> How do people feel about changing this to raise an error in this
> situation?

Can't do.

> Does anybody rely on silent truncation?

Yes, iirc the only thing you are allowed to do is issue a warning,
but the truncation is allowed and must succeed.
(checked in Informix and Oracle)

The appropriate SQLSTATE is: "01004" String data, right truncation
note that class 01 is a "success with warning".

Andreas



pgsql-hackers by date:

Previous
From: Alvar Freude
Date:
Subject: Re: Indexes not used in 7.1RC4: Bug?
Next
From: Peter Eisentraut
Date:
Subject: Re: libpq PQexec call of COPY