Обсуждение: BUG #18438: regex isnt working for "^" , ".*"

Поиск
Список
Период
Сортировка

BUG #18438: regex isnt working for "^" , ".*"

От
PG Bug reporting form
Дата:
The following bug has been logged on the website:

Bug reference:      18438
Logged by:          Ankur Kumar
Email address:      ankurawesome37@gmail.com
PostgreSQL version: 14.5
Operating system:   macos ventura version 13.5
Description:

hey , i am getting empty query result while using postgres regex operator
"^" , ".*" etc . I am able to use "%" correctly but not getting any response
for  other regex operator . For example - There is a user in users table
with  >  first_name - "aman", last_name -  "kumar" .
But while quering  i am not getting any result while querying users table
->

1) SELECT id from users where concat(users.first_name, ' ', users.last_name)
ILIKE '^am' 
2) SELECT id from users where concat(users.first_name, ' ', users.last_name)
ILIKE 'am.*' 
3) SELECT id from users where concat(users.first_name, ' ', users.last_name)
ILIKE '^am%' 

Above queries didnt return any result 

But it works for this query -

SELECT id from users where concat(users.first_name, ' ', users.last_name)
ILIKE 'am%' LIMIT 100


Re: BUG #18438: regex isnt working for "^" , ".*"

От
"David G. Johnston"
Дата:
On Mon, Apr 15, 2024 at 1:20 PM PG Bug reporting form <noreply@postgresql.org> wrote:
The following bug has been logged on the website:

Bug reference:      18438
Logged by:          Ankur Kumar
Email address:      ankurawesome37@gmail.com
PostgreSQL version: 14.5
Operating system:   macos ventura version 13.5
Description:       

hey , i am getting empty query result while using postgres regex operator
"^" , ".*" etc . I am able to use "%" correctly but not getting any response
for  other regex operator

As the opening paragraph of the relevant docs say:

There are three separate approaches to pattern matching provided by PostgreSQL: the traditional SQL LIKE operator, the more recent SIMILAR TO operator (added in SQL:1999), and POSIX-style regular expressions. Aside from the basic “does this string match this pattern?” operators, functions are available to extract or replace matching substrings and to split a string at matching locations.


You are mixing the first and third ones together.

David J.