Re: PG SQL and LIKE clause - Mailing list pgsql-general

From Adrian Klaver
Subject Re: PG SQL and LIKE clause
Date
Msg-id 065c0194-cd62-a92e-fdcb-7b439ee67ed9@aklaver.com
Whole thread Raw
In response to Re: PG SQL and LIKE clause  (Ron <ronljohnsonjr@gmail.com>)
List pgsql-general
On 9/13/19 7:35 AM, Ron wrote:
> On 9/13/19 9:14 AM, Adrian Klaver wrote:
>> On 9/12/19 11:11 PM, Ron wrote:
>>> On 9/13/19 12:28 AM, Matthias Apitz wrote:
>>>> Hello,
>>>>
>>>> We're porting a huge Library Management System, written using all kind
>>>> of languages one can think of (C, C++, ESQL/C, Perl, Java, ...) on 
>>>> Linux
>>>> from the DBS Sybase to PG, millions of lines of code, which works also
>>>> with DBS Oracle and in the past with INFORMIX-SE and -ONLINE.
>>>>
>>>> We got to know that in CHAR columns with trailing blanks a
>>>>
>>>> SELECT ... FROM ... WHERE name LIKE 'Ali'
>>>>
>>>> does not match in 'name' having 'Ali '.
>>>
>>> Did you forget the "%"?  Because the SQL standard which PostgreSQL 
>>> follows is:
>>>
>>> SELECT ... FROM ... WHERE name LIKE 'Ali%'
>>
>> The above is if you want to find a string starting with 'Ali'. If you 
>> are looking for the complete string 'Ali' then it is appropriate. The 
>> OP is looking for a way to automatically match a complete string 
>> against a right stripped string from a CHAR field.
> 
> This is highly dependent on implementation.  On the RDBMS that I used to 
> work on, trailing whitespace was automatically stripped from CHAR(xx) 
> fields.
> 

That is what is driving the OP's question. On Sybase the trailing 
whitespace is stripped apparently, on Postgres it is not, at least for 
the purposes of LIKE. Though for other comparisons whitespaces are 
ignored. See below for more information:

https://www.postgresql.org/docs/11/datatype-character.html

-- 
Adrian Klaver
adrian.klaver@aklaver.com



pgsql-general by date:

Previous
From: Judy Loomis
Date:
Subject: Re: Cascade Trigger Not Firing
Next
From: Adrian Klaver
Date:
Subject: Re: problems importing from csv