Thanks, Tom, that's very helpful. One more clarification: if the underlying
column has no express length limit (for example, it was defined as type
'text'), is this issue moot?

-- sgl

> From: Tom Lane <[EMAIL PROTECTED]>
> Date: Thu, 12 Aug 2004 23:57:11 -0400
> To: slane <[EMAIL PROTECTED]>
> Cc: [EMAIL PROTECTED], Jamie Thomas <[EMAIL PROTECTED]>
> Subject: Re: [ADMIN] PG 7.2 varchar change
> 
> slane <[EMAIL PROTECTED]> writes:
>> Here�s the currently most alarming, a change that is recorded for 7.2:
>> CHAR(), VARCHAR() now reject strings that are too long (Peter E)
>> What does this mean? Or how do I find out what it means?
> 
> If in doubt, experiment.
> 
> In 7.1:
> 
> regression=# create table foo(f1 varchar(5));
> CREATE
> regression=# insert into foo values('1234567890');
> INSERT 2913462 1
> regression=# select * from foo;
> f1   
> -------
> 12345
> (1 row)
> 
> In 7.4:
> 
> regression=# create table foo(f1 varchar(5));
> CREATE TABLE
> regression=# insert into foo values('1234567890');
> ERROR:  value too long for type character varying(5)
> 
> 7.4 follows the SQL spec (or our current understanding of it anyway):
> strings will not be silently truncated.  If you want to force truncation
> to a particular length you can cast the string explicitly:
> 
> regression=# select 'way too long'::varchar(5);
> varchar 
> ---------
> way t
> (1 row)
> 
> That works the same in either version.
> 
> regards, tom lane
> 


---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

               http://archives.postgresql.org

Reply via email to