Thread: BUG #3561: CHAR(x) blank stripped. Server or documentation bug?
The following bug has been logged online: Bug reference: 3561 Logged by: Alexander Kirpa Email address: postgres@bilteks.com PostgreSQL version: 8.2.4 Operating system: FreeBSD 6.2 Description: CHAR(x) blank stripped. Server or documentation bug? Details: Regarding http://www.postgresql.org/docs/8.2/interactive/datatype-character.html char(n) - fixed-length, blank padded In live: CREATE TABLE test1 (a character(6),b varchar(6)); INSERT INTO test1 VALUES ('ok','ok'); INSERT INTO test1 VALUES (' bad ',' bad '); INSERT INTO test1 VALUES (' poor',' poor'); select '['||a||']' as aa,'['||b||']' as bb from test1; INSERT INTO test1 VALUES ('ok','ok'); INSERT INTO test1 VALUES (' bad ',' bad '); INSERT INTO test1 VALUES (' poor',' poor'); select '['||a||']' as aa,'['||b||']' as bb from test1; aa | bb ----------+---------- [ok] | [ok] [ bad] | [ bad ] [ poor] | [ poor] (3 rows) It is easy to see that char(x) field really blank stripped. This is bug of server or documentation? Best regards, Alexander Kirpa
"Alexander Kirpa" <postgres@bilteks.com> writes: > select '['||a||']' as aa,'['||b||']' as bb from test1; > aa | bb > ----------+---------- > [ok] | [ok] > [ bad] | [ bad ] > [ poor] | [ poor] > (3 rows) > It is easy to see that char(x) field really blank stripped. > This is bug of server or documentation? From the documentation: > Values of type character are physically padded with spaces to the specified > width n, and are stored and displayed that way. However, the padding spaces > are treated as semantically insignificant. Trailing spaces are disregarded > when comparing two values of type character, and they will be 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. Concatenation is an example of an operation where the padding spaces are treated as semantically insignificant, so they get removed before the concatenation. -- Gregory Stark EnterpriseDB http://www.enterprisedb.com