[Rt-commit] r1984 - in DBIx-SearchBuilder/trunk: . SearchBuilder/Record

jesse at bestpractical.com jesse at bestpractical.com
Thu Dec 16 14:46:49 EST 2004


Author: jesse
Date: Sat Dec 11 15:34:15 2004
New Revision: 1984

Modified:
   DBIx-SearchBuilder/trunk/   (props changed)
   DBIx-SearchBuilder/trunk/Changes
   DBIx-SearchBuilder/trunk/META.yml
   DBIx-SearchBuilder/trunk/SIGNATURE
   DBIx-SearchBuilder/trunk/SearchBuilder.pm
   DBIx-SearchBuilder/trunk/SearchBuilder/Record/Cachable.pm
Log:
 r1997 at hualien:  jesse | 2004-12-10T05:11:39.224755Z
 This be 1.16. cache coherency fixes


Modified: DBIx-SearchBuilder/trunk/Changes
==============================================================================
--- DBIx-SearchBuilder/trunk/Changes	(original)
+++ DBIx-SearchBuilder/trunk/Changes	Sat Dec 11 15:34:15 2004
@@ -1,5 +1,11 @@
 Revision history for Perl extension DBIx::SearchBuilder.
 
+1.16 Thu Dec  9 23:49:39 EST 2004
+    - Fixed a bug in D::SB::R::Cachable that could cause it to load the wrong row from the cache if you were loading 
+      by alternate keys and had since changed one of the attributes of a previous row.  This was unmasked by a 
+      bug that Ruslan Zakirov found in RT 3.3's custom field handling
+
+
 1.15 Sat Nov 27 13:09:56 EST 2004
     - Fix a testsuite bug when DBD::SQLite isn't there
 

Modified: DBIx-SearchBuilder/trunk/META.yml
==============================================================================
--- DBIx-SearchBuilder/trunk/META.yml	(original)
+++ DBIx-SearchBuilder/trunk/META.yml	Sat Dec 11 15:34:15 2004
@@ -1,5 +1,5 @@
 name: DBIx-SearchBuilder
-version: 1.14
+version: 1.16
 license: perl
 distribution_type: module
 build_requires:

Modified: DBIx-SearchBuilder/trunk/SIGNATURE
==============================================================================
--- DBIx-SearchBuilder/trunk/SIGNATURE	(original)
+++ DBIx-SearchBuilder/trunk/SIGNATURE	Sat Dec 11 15:34:15 2004
@@ -14,11 +14,11 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
-SHA1 5d644b1b952a067b9a0079d35dfb643f2a539e75 Changes
+SHA1 d37781e9b72e7691a1cecfc2f57b0075ef117e4d Changes
 SHA1 024a044f3adb3dfab393ce3e549dcf86b99935ce MANIFEST
-SHA1 9d7fb976383428b91abaaa0751ee09d766abe321 META.yml
+SHA1 345a3aab854bf9f1f94405b667963144bc5c9970 META.yml
 SHA1 9921c69b0d05a54c5bb744a13cf1538bb06c4d82 Makefile.PL
-SHA1 a7acd9c76ea3231ffcb1b48f839b30402a8c3880 SearchBuilder.pm
+SHA1 ba20688f2ceb9667c1cce4e4844a41f2d40db40d SearchBuilder.pm
 SHA1 54e8db633ab6ae417a04e98bc70a9268353932f0 SearchBuilder/Handle.pm
 SHA1 0103d897704a95032b32363dc65ea4f0d8f5965d SearchBuilder/Handle/Informix.pm
 SHA1 861cee4205d1f367af5cc68b561fd37e38c1acf0 SearchBuilder/Handle/ODBC.pm
@@ -29,19 +29,19 @@
 SHA1 6399c19c7600c01f75e187facb1c01b2611b95df SearchBuilder/Handle/mysql.pm
 SHA1 f4f6ea88631e6310243b6351e8df11e1ec88b261 SearchBuilder/Handle/mysqlPP.pm
 SHA1 9f7fb45b282503ec4a9a9ede420c9b1cdb5ab5fc SearchBuilder/Record.pm
-SHA1 2d817db076079eebb8a8001ae252e53cc396d69e SearchBuilder/Record/Cachable.pm
+SHA1 4ecb1213589d62c08b3e3bb46bffbd9cda09ea10 SearchBuilder/Record/Cachable.pm
 SHA1 446f59a1fa8fa631c908f1fe3ea671c7178c9270 SearchBuilder/Union.pm
-SHA1 0de53a33616127f8680e6e4118741e80f354cd3e inc/Module/Install.pm
-SHA1 11d43fa1484b63eb90b0a3a1b62dcb7e71060084 inc/Module/Install/Base.pm
-SHA1 836dc65ebcb2913f5a7da77ddba4b6d46bd98f99 inc/Module/Install/Makefile.pm
-SHA1 2d0fae3f1ecf71666075b39911cb4694b1310edd inc/Module/Install/Metadata.pm
+SHA1 05d89e1fe6d49cd518b5a3e6694cc313e655fb02 inc/Module/Install.pm
+SHA1 2e300b145ee61eea9dfd71624b17b0bc9218aa4f inc/Module/Install/Base.pm
+SHA1 e094fe96aef06c68d7a424818c12e52b11f1ccdd inc/Module/Install/Makefile.pm
+SHA1 e448c6dc5351ef425e3f8bdbeb642409120bc3ca inc/Module/Install/Metadata.pm
 SHA1 c56b4e38f1bdf2c2c9b4bc415fe1437e11d18686 t/00.load.t
-SHA1 52a2cc7d86bd6e8aa4414484e085e3f52acb7656 t/01records.t
+SHA1 1a9eba3bb7a2e605d73e56c193fb5bd7cb83c235 t/01records.t
 SHA1 e9c6a5881fc60173fbc8d479c1afd2ce3b43bef1 t/pod.t
 -----BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.2.4 (Darwin)
+Version: GnuPG v1.2.5 (GNU/Linux)
 
-iD8DBQFBp/c7Ei9d9xCOQEYRAtnYAJ49LM+Lm+p9Q2t/QmSCAKftBgOrBQCfTvCi
-T85+JnYiYaiE7NfHUoW9Nl0=
-=tlhX
+iD8DBQFBuS/zEi9d9xCOQEYRAkiHAKCaAEW3a4LT8WZIlO4HxtHh0vZ32gCggo5E
+EkecKsWtnsrzqoZ+SE8b3mQ=
+=ZK+4
 -----END PGP SIGNATURE-----

Modified: DBIx-SearchBuilder/trunk/SearchBuilder.pm
==============================================================================
--- DBIx-SearchBuilder/trunk/SearchBuilder.pm	(original)
+++ DBIx-SearchBuilder/trunk/SearchBuilder.pm	Sat Dec 11 15:34:15 2004
@@ -5,7 +5,7 @@
 use strict;
 use vars qw($VERSION);
 
-$VERSION = "1.15";
+$VERSION = "1.16";
 
 =head1 NAME
 

Modified: DBIx-SearchBuilder/trunk/SearchBuilder/Record/Cachable.pm
==============================================================================
--- DBIx-SearchBuilder/trunk/SearchBuilder/Record/Cachable.pm	(original)
+++ DBIx-SearchBuilder/trunk/SearchBuilder/Record/Cachable.pm	Sat Dec 11 15:34:15 2004
@@ -75,6 +75,19 @@
 
 }
 
+=head2 _FlushKeyCache
+
+Blow away this record type's key cache
+
+=cut
+
+
+sub _FlushKeyCache {
+    my $self = shift;
+    my $cache = $self->_Handle->DSN . "-KEYS--" . ($self->{'_Class'} ||= ref($self));
+    $self->_SetupCache($cache);
+}
+
 sub _RecordCache {
     my $self = shift;
     my $cache = $self->_Handle->DSN . "--" . ($self->{'_Class'} ||= ref($self));
@@ -171,6 +184,9 @@
 sub _expire (\$) {
     my $self = shift;
     $self->_RecordCache->set( $self->_primary_RecordCache_key , undef, time-1);
+    # We should be doing something more surgical to clean out the key cache. but we do need to expire it
+    $self->_FlushKeyCache;
+   
 }
 
 # Function: _fetch


More information about the Rt-commit mailing list