42090f50bacf3b1c21912fb7574e24644e854d31
[dbsrgits/DBM-Deep.git] / Changes
1 Revision history for DBM::Deep.
2
3 0.983 Mar 25 08:00:00 2006 Pacific
4     - Added patch inspired by Jeff Janes (Thanks!)
5       - Autovivification now works correctly
6       - The following now works correctly
7         my %hash = ( a => 1 );
8         $db->{hash} = \%hash;
9         $hash{b} = 2;
10         cmp_ok( $db->{hash}{b}, '==', 2 );
11     - NOTE: This patch works by tying the underlying datastructure that was
12       passed in. There are currently no checks to see if the datastructure was
13       previously tied.
14
15 0.982 Mar 08 11:00:00 2006 Pacific
16     - Fixed smoketests that were failing on Win32
17     - Added restriction for Perl 5.6.0 or higher.
18       - Digest::MD5 and Sub::Uplevel (dep of Test::Exception) require 5.6+
19
20 0.981 Mar 06 11:00:00 2006 Pacific
21     - (RT#17947) - Fixed test that was failing on older Perls
22
23 0.98  Feb 28 11:00:00 2006 Pacific
24     - Added in patch by David Cantrell to allow use of DATA filehandle
25     - Fixed bug where attempting to export() a structure that used autobless would die
26     - Fixed arraytest slowness by localizing $SIG{__DIE__} to prevent Test::Builder's
27       $SIG{__DIE__} from being called. (q.v. http://perldoc.perl.org/functions/eval.html)
28     - More methods have been made private:
29         - root() is now _root()
30         - base_offset() is now _base_offset()
31         - fh() is now _fh()
32         - type() is now _type()
33         - precalc_sizes() is now _precalc_sizes()
34
35 0.97  Feb 24 10:00:00 2006 Pacific
36     - Reorganization of distribution to a more standard layout
37     - Migration to Module::Build with EU::MM backwards compatibility
38     - Migration of all tests to use Test::More and Test::Exception
39     - Added Devel::Cover report to DBM::Deep POD
40       - Test coverage improved to 89.6% (and climbing)
41     - The following methods have been renamed to reflect their private nature:
42         - init() is now _init()
43         - open() is now _open()
44         - close() is now _close()
45         - load_tag() is now _load_tag()
46         - index_lookup() is now _index_lookup()
47         - add_bucket() is now _add_bucket()
48         - get_bucket_value() is now _get_bucket_value()
49         - delete_bucket() is now _delete_bucket()
50         - bucket_exists() is now _bucket_exists()
51         - find_bucket_list() is now _find_bucket_list()
52         - traverse_index() is now _traverse_index()
53         - get_next_key() is now _get_next_key()
54         - copy_node() is now _copy_node()
55         - throw_error() is now _throw_error()
56     - The various tied classes have been broken out. This means that testing
57         "ref( $obj ) eq 'DBM::Deep'" will now fail. The correct test is
58         "eval { $obj->isa( 'DBM::Deep' ) }".
59     - The various methods like push and delete now have the same return values as
60       the standard builtins.
61     - TIEARRAY and TIEHASH now check their parameters more thoroughly
62     - Negative indices for arrays works as expected, including throwing the appropriate
63       errors.
64     - RT #16877 is fixed (DBM::Deep broken with Perl 5.9.3+).
65     - RT #14893 is fixed (tie() and new() use different parameter lists).
66     - A bug with optimize and threading is fixed.
67     - autobless has received some attention, resulting in a number of bugs fixed.
68     - Removed mode option as it just caused confusion.
69     - Removed volatile option as it is pretty useless (use locking instead)
70     - Locking now implicitly enables autoflush
71
72 0.96  Oct 14 09:55:00 2005 Pacific
73     - Fixed build (OS X hidden files killed it)
74     - You can now pass in an optional filehandle to the constructor
75
76 0.95  Oct 12 13:58:00 2005 Pacific
77     - Added optional autobless flag to preserve and restore blessed hashes
78     - Fixed bug where 0 could not be fetched using get_next_key
79     - Fixed bug where tie() constructor didn't accept a hash ref for args
80     - optimize() now preserves user/group/permissions
81     - Errors are now FATAL (meaning it calls die()), unless you set debug flag
82
83 0.94  Apr 13 19:00:26 2004 Pacific
84     - Fixed bug reported by John Cardenas (corruption at key level when
85          replace of less data was done on bucket)
86
87 0.93  Feb 15 19:53:17 2004 Pacific
88     - Fixed optmize() on Win32 where orig file couldn't be overwritten unless
89          filehandle was closed first.  This change introduces a potential race
90          condition when using locking and optmize() on Win32, but it can be 
91          fixed in the future using a soft copy instead of Perl's rename().
92
93 0.92  Feb 12 19:10:22 2004 Pacific
94     - Fixed bug where passing a reference to a different DBM::Deep object
95          would still result in an internal reference.
96     - Added export() method for recursively extracting hashes/arrays into
97          standard in-memory Perl structures.
98     - Added import() method for recursively importing existing Perl hash/
99          array structures
100     - Fixed bug where optimize() wouldn't work if base level of DB was
101          an array instead of a hash.
102
103 0.91  Feb 12 02:30:22 2004 Pacific
104     - Fixed bug with splice() when length of removed section was 0
105     - Updated POD re: circular refs and optimize()
106     - Had to jump version numbers to 0.91 because in previous releases
107          I used only a single digit after the decimal which was confusing
108          the CPAN indexer.
109
110 0.10  Feb 11 08:58:35 2004 Pacific
111     - Fixed bug where default file mode was CLEARING files (Thanks Rich!)
112     - Added experimental support for circular references
113     - Fixed bugs in shift(), unshift() and splice() where nested objects
114         in array would be recursively re-stored as basic hashes/arrays
115     - Fixed typos in POD docs
116
117 0.9   Feb 10 03:25:48 2004 Pacific
118     - Added Filters for storing/fetching keys/values
119     - Added hook for supplying own hashing algorithm
120     - FIxed some typos in POD docs, added new sections
121
122 0.8   Feb 8 02:38:22 2004 Pacific
123     - Renamed to DBM::Deep for CPAN
124     - Added optimize() method for rekindling unused space
125     - Now returning hybrid tie()/OO object from new()
126     - Basic error handling introduced
127     - Added debug mode for printing errors to STDERR
128     - Added TYPE_HASH and TYPE_ARRAY constants for "type" param
129     - Added clone() method for safe copying of objects
130     - Wrote POD documentation
131     - Added set_pack() function for manipulating LONG_SIZE / LONG_PACK
132     - Added aliases for most tied functions for public use
133     - Now setting binmode() on FileHandle for Win32
134     - Added 45 unit tests
135
136 0.7   Jan 4 11:31:50 2003 UTC
137     - Renamed to DeepDB
138     - Changed file signature to DPDB (not compatible with older versions)
139     - Converted array length to packed long instead of sprintf()ed string
140
141 0.6   Dec 31 15:12:03 2002 UTC
142     - Some misc optimizations for speed
143
144 0.5   Oct 18 08:55:29 2002 UTC
145     - support for force_return_next parameter in traverse_index() method for 
146       ultra-fast combined key search/removal
147
148 0.4   Oct 15 20:07:47 2002 UTC
149     - now making sure filehandle is open for all DB calls
150
151 0.3   Oct 3 19:04:13 2002 UTC
152     - fixed bug that could cause corrupted data when using locking
153
154 0.2   Aug 6 16:37:32 2002 UTC
155     - Removed base index caching, as it can cause problems when two processes 
156       are populating the db at the same time (even with locking)
157
158 0.1   Jun 3 08:06:26 2002 UTC
159     - initial release