Re: PG 7.2 varchar change

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: PG 7.2 varchar change
Дата
Msg-id 17798.1092369431@sss.pgh.pa.us
обсуждение исходный текст
Ответ на PG 7.2 varchar change  (slane <slane@moyergroup.com>)
Ответы Re: PG 7.2 varchar change  (Steve Lane <slane@soliantconsulting.com>)
Список pgsql-admin
slane <slane@moyergroup.com> 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

В списке pgsql-admin по дате отправления:

Предыдущее
От: slane
Дата:
Сообщение: PG 7.2 varchar change
Следующее
От: Christopher Browne
Дата:
Сообщение: Re: PG 7.2 varchar change