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 9: the planner will ignore your desire to choose an index scan if your
      joining column's datatypes do not match

Reply via email to