~ 'ali[ ]*$' matches strings ending in ali that have zero of more spaces after ali
this would match
'bali'
'ali'
'ali '
'bali '
If you need full string then it would be like this
~ '^ali[ ]*$' matches string only containing ali plus zero or more spaces after ali
this would match
'ali'
'ali '
but not match
'bali'
'bali '
Also switching ~* for ~ makes if case insensitive if necessary.
John
On Thu, Sep 12, 2019 at 10:29 PM Matthias Apitz <guru@unixarea.de> 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 '.
I glanced through our code with grep pipelines and found some hundred places which would be affected by this problem. I'm not interested in a religious discussion if or if not this behaviour of PG is correcter or better than in Sybase. It's just different to Sybase.
Any hints to address this problem? Or is there any compile time option for the PG server to address this?