| From: | Andy Colson <andy(at)squeakycode(dot)net> |
|---|---|
| To: | Marc Mamin <M(dot)Mamin(at)intershop(dot)de>, Postgres General <pgsql-general(at)postgresql(dot)org> |
| Subject: | Re: Counting the occurences of a substring within a very large text |
| Date: | 2015-06-24 13:24:45 |
| Message-ID: | 558AAF9D.1050200@squeakycode.net |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
On 6/24/2015 5:55 AM, Marc Mamin wrote:
> Hello,
>
> I'd like to count the number linebreaks within a string,
> but I get a memory allocation error when using regexp_matches or regexp_split_to_table.
>
> Any idea for an alternative to this problem ?
>
> select count(*)-1 from
> ( select regexp_split_to_table(full_message,'(\n)', 'g')
> from mytable
> where id =-2146999703
> )foo;
>
> ERROR: invalid memory alloc request size 1447215584
>
> regards,
>
> Marc Mamin
>
>
If its a large enough string, switching to plperl/plpython might give
you a pleasant speedup. There is a small overhead getting the string
to/from pg, but the string ops will be much faster.
-Andy
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Marc Mamin | 2015-06-24 13:28:14 | Re: Counting the occurences of a substring within a very large text |
| Previous Message | Albe Laurenz | 2015-06-24 11:43:59 | Re: Counting the occurences of a substring within a very large text |