Search Postgresql Archives

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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> > > 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
> >
> > Does any of these two work:
> >
> > SELECT length(regexp_replace(full_message, '[^\n]', '', 'g')) FROM
> > mytable WHERE id = -2146999703;
> >
> > or
> >
> > SELECT length(full_message) - length(replace(full_message, E'\n',
> ''))
> > FROM mytable WHERE id = -2146999703;
> 
> 
> no, they both yeld the same error.
> 


and this fails too, which is more annoying as it looks like a bug:
SELECT replace(full_message, E'\n', '') FROM stadium_rprod.aserrorfull_20150623 WHERE id = -2146999703;

note that the 345MB text only contains 635 lines. This might be the issue...

Marc Mamin


> a new string functions for this would be nice, as it could certainly be
> implemented in a more efficient way...
> 
> 	BTW: the text to check is a single 350 MB error message from a
> log file :)
> 
> 
> 
> 
> 
> >
> > Yours,
> > Laurenz Albe

-- 
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux