Обсуждение: BUG #15974: Concact with || doesn't work, but function CONCAT () works
BUG #15974: Concact with || doesn't work, but function CONCAT () works
От
PG Bug reporting form
Дата:
The following bug has been logged on the website: Bug reference: 15974 Logged by: Tessari Andrea Email address: tessari@gmail.com PostgreSQL version: 11.4 Operating system: linux - Red Hat 7.6 Description: Example. ( I test on postgres 11.4 and postgres 10.9 (edb) ) create table AA3 (CLIV CHAR(2), SSTT CHAR(1)); INSERT INTO AA3 (CLIV,SSTT) VALUES (' ','2'); COMMIT; ---errore expect "A Z" --> result "AZ" select 'A'||(CASE WHEN J01.CLIV = ' ' THEN ' ' ELSE J01.CLIV END)||'Z' as X from AA3 J01; ---errore expect "A "--> result "A" select 'A'||(CASE WHEN J01.CLIV = ' ' THEN ' ' ELSE J01.CLIV END) as X from AA3 J01; ---errore expect " Z"--> result "Z" select (CASE WHEN J01.CLIV = ' ' THEN ' ' ELSE J01.CLIV END)||'Z' as X from AA3 J01; --WORKS - show " "--> result " " select (CASE WHEN J01.CLIV = ' ' THEN ' ' ELSE J01.CLIV END) as X from AA3 J01; -- WORKS select 'A'||(CASE WHEN CLIV = ' ' THEN ' ' ELSE ' ' END)||'Z' from AA3 ; -- WORKS select CONCAT ('A', x,'Z') FROM (SELECT CASE WHEN CLIV = ' ' THEN ' ' ELSE CLIV END AS X from AA3) ;
Re: BUG #15974: Concact with || doesn't work, but function CONCAT () works
От
"David G. Johnston"
Дата:
On Fri, Aug 23, 2019 at 4:17 AM PG Bug reporting form <noreply@postgresql.org> wrote:
The following bug has been logged on the website:
Bug reference: 15974
Logged by: Tessari Andrea
Email address: tessari@gmail.com
PostgreSQL version: 11.4
Operating system: linux - Red Hat 7.6
Description:
Example.
( I test on postgres 11.4 and postgres 10.9 (edb) )
create table AA3 (CLIV CHAR(2), SSTT CHAR(1));
INSERT INTO AA3 (CLIV,SSTT) VALUES (' ','2');
In general most behaviors involving the "char" data type are what they are and you can either accept them as-is or change to text to get more logical/consistent behavior.
If you want a more in depth analysis of how char behaves in various situations there are a number of posts in the archives where people have taken the time to explain in detail what is happening. Or someone may do that here...but that someone isn't me.
If you want to claim these are buggy you'd need to point to documentation that isn't being adhered to not just expectations.
David J.