Resolved...my missing
Thanks
Enrico
https://www.postgresql.org/docs/10/static/datatype-character.html
"Values of type|character|are physically padded with spaces to the
specified width/|n|/, and are stored and displayed that way. However,
trailing spaces are treated as semantically insignificant and
disregarded when comparing two values of type|character|. In collations
where whitespace is significant, this behavior can produce unexpected
results; for example|SELECT 'a '::CHAR(2) collate "C" <
E'a\n'::CHAR(2)|returns true, even though|C|locale would consider a
space to be greater than a newline. Trailing spaces are removed when
converting a|character|value to one of the other string types. Note that
trailing spaces/are/semantically significant in|character
varying|and|text|values, and when using pattern matching, that
is|LIKE|and regular expressions."
Il 28/03/2018 11:32, Andreas Kretschmer ha scritto:
Am 28.03.2018 um 11:11 schrieb Enrico Pirozzi:
Hi , I've seen this strange thing.
sitedb=# create table test_tb(codice char(7));
CREATE TABLE
sitedb=# insert into test_tb values('pippo');
INSERT 0 1
sitedb=# select codice || 'a'::char(1),length(codice) from test_tb
?column? | length
----------+--------
pippoa | 5
(1 row)
where is the problem? length() returns the number of chars in string,
and the string in codice is 5 chars long.
On the official documentation
|character(/|n|/)|,|char(/|n|/)| fixed-length, blank padded
https://www.postgresql.org/docs/10/static/datatype-character.html
test=*# select length('12345'::char(10)),
pg_column_size('12345'::char(10));
length | pg_column_size
--------+----------------
5 | 14
(1 Zeile)
helps that?
Regards, Andreas
--
Enrico Pirozzi
NBS Group S.r.l.
via Val Tiberina 23/A
63074, San Benedetto del Tronto (AP)
Tel. 0735-7626201