Re: Counting the occurences of a substring within a very large text

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: Raw Message | Whole Thread | 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

In response to

Browse pgsql-general by date

  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