From: | Nicolas Gouteux <nicolas(dot)gouteux(at)sonarsource(dot)com> |
---|---|
To: | "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com> |
Cc: | "pgsql-bugs(at)lists(dot)postgresql(dot)org" <pgsql-bugs(at)lists(dot)postgresql(dot)org> |
Subject: | Re: BUG #18051: char(N) and varchar(N) behave opposite to the documentation |
Date: | 2023-08-09 14:04:42 |
Message-ID: | CANyQZ-6jub8k4cuuiE=1V+aWSdWWXYug_dK+ytR6RoUjm=zxew@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
Hi
Sorry, but I still do not get it:
- char type adds padding up to its length
- select length(charcol), char_length(charcoal)
both yield 1
- how can the length of a char(10) be different than 10 since is right
padded?
- I am pretty sure that Oracle/MS-SQL/Sybase would say that length is 10...
Nicolas Gouteux | Sonar
https://sonarsource.com
Are you using SonarLint <https://www.sonarlint.org> in your IDE?
On Wed, 9 Aug 2023 at 14:57, David G. Johnston <david(dot)g(dot)johnston(at)gmail(dot)com>
wrote:
> On Wednesday, August 9, 2023, PG Bug reporting form <
> noreply(at)postgresql(dot)org> wrote:
>
>> The following bug has been logged on the website:
>>
>> Bug reference: 18051
>> Logged by: Nicolas Gouteux
>> Email address: nicolas(dot)gouteux(at)sonarsource(dot)com
>> PostgreSQL version: 13.7
>> Operating system: Linux
>> Description:
>>
>> create table if not exists ngx_char (
>> charcol char(10) not null,
>> varcharcol varchar(10) not null
>> );
>> truncate table ngx_char;
>> insert into ngx_char (charcol, varcharcol) values ('A', 'A');
>> insert into ngx_char (charcol, varcharcol) values ('A ', 'A ');
>> select charcol || 'B', varcharcol || 'C' from ngx_char;
>> select * from ngx_char where charcol = varcharcol;
>>
>> Output:
>>
>> ?column?,?column?
>> AB,AC
>> AB,A C
>>
>> This is very strange! Is it me?
>
>
> This is working as designed and documented. The concatenation to text
> removes the insignificant white space in char. There is no manipulation of
> content for varchar.
>
> Just don’t use char. There is no good reason to deal with its implicit
> behaviors.
>
> David J.
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Nicolas Gouteux | 2023-08-09 14:28:55 | Re: BUG #18051: char(N) and varchar(N) behave opposite to the documentation |
Previous Message | Tom Lane | 2023-08-09 13:39:20 | Re: pg_restore 14 skips ACL COLUMN when --schema is used |