On Fri, Aug 20, 2021 at 12:32 PM Mark Dilger <mark(dot)dilger(at)enterprisedb(dot)com>
wrote:
>
> The following queries take radically different time to run:
>
Unbounded ranges seem like a problem. Seems worth trying a range from 1 to
N where you play around with N to find your optimum
performance/functionality tradeoff. {1,20} is like '+' but clamps at 20.
select regexp_replace(
repeat('someone,one,one,one,one,one,one,', 60),
'(?<=^|,)([^,]+)(?:,\1){1,20}(?=$|,)',
'\1', -- replacement
'g' -- apply globally (all matches)
);
- Miles Elam