On Mon, Jan 14, 2013 at 10:13:44PM +1100, Peter Rabbitson wrote: > On Sun, Jan 13, 2013 at 11:35:06PM -0500, Jesse Sheidlower wrote: > > > > I have a Catalyst app that very frequently (pretty much every request) > > requires several DBIC resultsets that return a small number of values, > > that very rarely change. I'm trying to cache this, so I can update the > > cache when the values change and not have to hit my DB a half-dozen > > times on every request for data that is effectively static. > > > > Originally the relevant line was along the lines of: > > > > $c->stash->{subjects} = $c->model('WordsDB::Subject')->search(); > > > > I replaced this, following the C::P::Cache docs, with > > > > unless ( $c->stash->{subjects} = $cache->get( 'subjects' ) ) { > > $c->stash->{subjects} = > > $c->model('WordsDB::Subject')->search(); > > $cache->set( 'subject', $c->stash->{subjects} ); > > } > > > > However, this dies (on a second run, when it's actually hitting the > > cache) with "undef error - Can't call method "select" on an undefined > > value at /usr/share/perl5/DBIx/Class/ResultSet.pm line 957". > > This is a crappy error message. Please tell us which DBIC version are > you running exactly so that we can figure out what is on this line.
It's version 0.08196. This is in the cursor() method. > > So I'm assuming that I can't just stuff a RS into the cache and expect > > it to work. > > Things should just work, at least for Storable-based serialization. Need > more details to diagnose this. What would you like to know? Jesse Sheidlower _______________________________________________ List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class IRC: irc.perl.org#dbix-class SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/ Searchable Archive: http://www.grokbase.com/group/dbix-class@lists.scsys.co.uk