LazySearch v1.2 Released for SlimServer 6.2/6.3

I've produced a bugfix release of the Lazy Search plugin for SlimServer 6.2 and 6.3. Note that this bug doesn't affect v2.x versions of the plugin for SlimServer 6.5 and so there's no corresponding release for that SlimServer version.

This fixes a bug reported by John Lara where some database entries would be continually re-lazified even though they were already lazified. This resulted in the search columns getting exponentially wider and wider until the rows got too large and caused SlimServer to run out of memory. All credit to the little sqlite library as it seemed to manage rows of over 85MB before the memory load got too great!

Thanks to John for reporting it and helping to track it down.

The plugin can be download from the plugin home page here.

Details

This has probably been around for a long time, and I'm not too sure why it was occurring as the search looked sound to me (I think it might be a bug in the Perl database wrapper used in SlimServer 6.2.x/6.3.x, but I've not got to the bottom of it to be sure). I've changed the mechanism of searching for items to lazify to avoid it happening from now on.

If Slim Devices are interested in the bug I think I found (I've not got enough confidence in this to raise a Bugzilla bug, and as I've not heard of anything similar for SlimServer without this plugin then Bugzilla isn't the right place to report it anyway), then the changes I had to make can be seen in this changeset.

The problem was the first search (the one that tries to find lazified items by searching with a LIKE '%||%' clause) wouldn't find all the rows that had that pattern in them, causing those rows to be re-lazified. This only affected a few rows out of the many that were in John's database, and there didn't appear to be anything particularly different about those rows that would make the search perform differently for them. At any rate I worked out how to do a proper NOT search with the database library and so avoided the need for the problematic search.