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

Started by PG Bug reporting formabout 2 years ago2 messagesbugs
Jump to latest
#1PG Bug reporting form
noreply@postgresql.org

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

#2David G. Johnston
david.g.johnston@gmail.com
In reply to: PG Bug reporting form (#1)
Re: BUG #18438: regex isnt working for "^" , ".*"

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.

https://www.postgresql.org/docs/current/functions-matching.html

You are mixing the first and third ones together.

David J.