Index: db.php =================================================================== RCS file: /repository/pear/Cache/Container/db.php,v retrieving revision 1.2 diff -u -r1.2 db.php --- db.php 12 Jul 2002 17:30:57 -0000 1.2 +++ db.php 8 Nov 2002 09:58:53 -0000 @@ -217,10 +217,10 @@ { $this->flushPreload(); - $query = sprintf('DELETE FROM %s WHERE (expires <= %d AND expires > 0) OR changed <= (NOW() - %d)', + $query = sprintf('DELETE FROM %s WHERE (expires <= %d AND expires > 0) OR changed <= %d', $this->cache_table, time(), - $maxlifetime + time() - $maxlifetime ); $res = $this->db->query($query); @@ -237,14 +237,15 @@ $this->cache_table ); $res = $this->db->query($query); - $keep_size=0; - while ($keep_size < $this->lowwater && $entry = $res->FetchRow(DB_FETCHMOD_ASSOC) ) - { - $keep_size += $entry[size]; + $numrows = $this->db->numRows($res); + $keep_size = 0; + while ($keep_size < $this->lowwater && $numrows--) { + $entry = $res->fetchRow(DB_FETCHMODE_ASSOC); + $keep_size += $entry['size']; } //delete all entries, which were changed before the "lowwwater mark" - $query = sprintf('delete from %s where changed <= '.$entry[changed], + $query = sprintf('delete from %s where changed <= '.($entry['changed'] ? $entry['changed'] : 0), $this->cache_table ); $res = $this->db->query($query); @@ -256,4 +257,4 @@ } } -?> \ No newline at end of file +?>