diff --git a/lib/DBIx/Class/Cursor/Cached.pm
b/lib/DBIx/Class/Cursor/Cached.pm
index 5eaf6b0..da13170 100644
--- a/lib/DBIx/Class/Cursor/Cached.pm
+++ b/lib/DBIx/Class/Cursor/Cached.pm
@@ -48,6 +48,7 @@ sub reset {

 sub _build_cache_key {
   my ($class, $storage, $args, $attrs) = @_;
+  local $Storable::canonical = 1;
   return Digest::SHA1::sha1_hex(Storable::nfreeze([ $args, $attrs ]));
 }

I spent some time trying to get a failing test, but I think the test setup
(just a single CD class) is not complex enough to make it fail.  Is there
any doubt that $Storable::canonical = 1 is required?

When testing in my app Storable is returning over 15K of data to use for the
key digest, where in the test in ::Cursor::Cached is only returning some 300
bytes.  So, a lot more room for sorting differences.

I guess this module is not getting much use, considering it was uploaded to
cpan in 2007.



-- 
Bill Moseley
[email protected]
_______________________________________________
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/[email protected]

Reply via email to