about value storage
http://www.postgresql.org/docs/9.0/interactive/typeconv-query.html
example shows:
CREATE TABLE vv (v character(20));
INSERT INTO vv SELECT 'abc' || 'def';
SELECT v, length(v) FROM vv;
v | length
----------------------+--------
abcdef | 20
(1 row)
but my test show not like this :
^
lsl=# select version();
version
-------------------------------------------------------------------------------------------------------------------
PostgreSQL 9.0.1 on x86_64-unknown-linux-gnu, compiled by GCC gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46), 64-bit
(1 row)
lsl=# CREATE TABLE vv (v character(20));
INSERT INTO vv SELECT 'abc' || 'def';
SELECT v, length(v) FROM vv;
CREATE TABLE
lsl=# INSERT INTO vv SELECT 'abc' || 'def';
INSERT 0 1
lsl=# SELECT v, length(v) FROM vv;
v | length
----------------------+--------
abcdef | 6
(1 row)
why ?? anyone help me ?
or it is a doc mistake ?
thank you!
"lsliang" <lsliang@pconline.com.cn> writes:
http://www.postgresql.org/docs/9.0/interactive/typeconv-query.html
example shows:
CREATE TABLE vv (v character(20));
INSERT INTO vv SELECT 'abc' || 'def';
SELECT v, length(v) FROM vv;
v | length
----------------------+--------
abcdef | 20
(1 row)
but my test show not like this :
Hmm, looks like that example was overlooked when we changed the behavior
years ago:
http://git.postgresql.org/gitweb/?p=postgresql.git&a=commitdiff&h=f27976c85b1fb9002727cce65b9f9567e158f754
Given the context, we should change it to use octet_length().
Will fix, thanks.
regards, tom lane