From: | PG Bug reporting form <noreply(at)postgresql(dot)org> |
---|---|
To: | pgsql-bugs(at)lists(dot)postgresql(dot)org |
Cc: | james(dot)inform(at)pharmapp(dot)de |
Subject: | BUG #16826: Regex in substring(... from ..) wrong |
Date: | 2021-01-15 08:23:00 |
Message-ID: | 16826-74307d62de0291ef@postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
The following bug has been logged on the website:
Bug reference: 16826
Logged by: James Inform
Email address: james(dot)inform(at)pharmapp(dot)de
PostgreSQL version: 13.1
Operating system: Mac and Ubuntu
Description:
Hopefully I am not messing up regex syntax, but it seems that handling of
non-greedy is not correct in substring function's regex.
When I set the non-greedy operator ? inside a regex in the substring
function, everything after the ? seems to be also treated as non-greedy,
which is wrong.
Please look at the following examples, the last one shows the issue:
select substring('part1.part2.part3' from '^.*');
-- Result: part1.part2.part3
-- Correct, gets the whole string
select substring('part1.part2.part3' from '^.*\.');
-- Result: part1.part2.
-- Correct, because default mode is greedy, so everything until the second
dot is catched
select substring('part1.part2.part3' from '^.*?\.');
-- Result: part1.
-- Correct, because mode is non-greedy, so everything until the first dot is
catched
select substring('part1.part2.part3' from '^.*\..*');
-- Result: part1.part2.part3
-- Correct, everything is catched
select substring('part1.part2.part3' from '^.*?\..*');
-- Result: part1.
-- Wrong, should catch everything but seems to stay non-greedy after the ?
I have also tested against REL_13_STABLE including commit
49c928c0c067a8ec0882eeea5c03ccbd1b1b1a62, but the issue is the same.
From | Date | Subject | |
---|---|---|---|
Next Message | PG Bug reporting form | 2021-01-15 14:00:03 | BUG #16827: macOS interrupted syscall leads to a crash |
Previous Message | Peter Eisentraut | 2021-01-15 08:00:31 | Re: pg_upgrade test for binary compatibility of core data types |