Re: regexp_split_to_array hangs backend - Mailing list pgsql-hackers

From Tom Lane
Subject Re: regexp_split_to_array hangs backend
Date
Msg-id 15028.1186786356@sss.pgh.pa.us
Whole thread Raw
In response to regexp_split_to_array hangs backend  ("Pavel Stehule" <pavel.stehule@gmail.com>)
List pgsql-hackers
"Pavel Stehule" <pavel.stehule@gmail.com> writes:
> I found small bug

> regexp_split_to_array('123456','1');
> regexp_split_to_array('123456','6');
> regexp_split_to_array('123456','.');

> these parameters hangs backend.

This code's got more problems than that :-(

The one that's bothering me right now is that regexp_match() and
regexp_split() cache a compiled regex on first entry to the function,
and then blithely assume it will still be there on repeated calls.

I think probably the best thing to do is do all the matching on the
first call, and have the saved state include an array of character
positions of matches; then repeat calls to the SRF just iterate through
the array.

It seems a bit short of comments too.  Working on it now.
        regards, tom lane


pgsql-hackers by date:

Previous
From: Andrew Dunstan
Date:
Subject: Re: change name of redirect_stderr?
Next
From: Gregory Stark
Date:
Subject: Re: Unexpected VACUUM FULL failure