+++ /dev/null
-# These are the calls into ::Engine
-::Deep:
- _init:
- setup_fh($self)
- optimize:
- setup_fh($self)
- STORE:
- old:
- apply_digest($key)
- find_blist( $self->_base_offset, $md5, { create => 1 } )
- add_bucket( $tag, $md5, $key, $value, undef, $orig_key )
- new:
- write_value( $key, $value );
- FETCH:
- old:
- apply_digest($key)
- find_blist( $self->_base_offset, $md5 )
- get_bucket_value( $tag, $md5, $orig_key )
- new:
- read_value( $key )
- DELETE:
- old:
- apply_digest($key)
- find_blist( $self->_base_offset, $md5 )
- get_bucket_value( $tag, $md5, $orig_key )
- delete_bucket( $tag, $md5, $orig_key )
- new:
- delete_key( $key )
- EXiSTS:
- old:
- apply_digest($key)
- find_blist( $self->_base_offset, $md5 )
- bucket_exists( $tag, $md5 )
- new:
- exists_key( $key )
- CLEAR:
- old:
- apply_digest($key)
- find_blist( $self->_base_offset, $md5 )
- delete_bucket( $tag, $md5, $key )
- new:
- delete_key( $key )
-::Array:
-::Hash:
- FIRSTKEY:
- old:
- get_next_key($self)
- new:
- get_next_key()
- NEXTKEY:
- old:
- apply_digest($prev_key)
- get_next_key($self, $prev_md5)
- new:
- get_next_key($prev_key)
-::File:
Revision history for DBM::Deep.
-0.99_03 ??? ?? ??:??:?? 2006 Pacific
+0.99_03 Jan ?? 00:00:00 2007 EDT
+ - THIS VERSION IS INCOMPATIBLE WITH FILES FROM ALL OTHER PRIOR VERSIONS.
+ - The fileformat changed completely. I will be writing a converter, but
+ it's not there right now. Do NOT expect that this module will
+ correctly detect older versions and handle them sanely. Sanity will be
+ there for 1.00, but we're not there yet, are we?
- Converted to use FileHandle::Fmode to handle filehandle status checks
- Fixed bug with deleting already-deleted items on Win32 (reported by Nigel Sandever)
+ - The guts of how transactions work has been rewritten to better handle
+ some edgecases. This required a complete rewrite of the engine.
+ - Freespace management is now in place. It's not perfect, but it's there.
+ - The rewrite of the engine required a rewrite of how first_key/next_key
+ was implemented. This should result in significant speed improvements.
+ - Self-reference has been removed. This means you cannot do:
+ $db->{foo} = { x => 'y' };
+ $db->{bar} = $db->{foo};
+ I hope to be able to return this functionality by 1.00, but I cannot
+ promise anything. To do this properly, it requires refcounting in order
+ to correctly handle deletions and transactions. Once you move away from
+ a simple tree, everything becomes really hard.
0.99_02 Apr 28 05:00:00 2006 Pacific
- Added missing file to the MANIFEST
Build.PL
Changes
-README
-Makefile.PL
-MANIFEST
-META.yml
lib/DBM/Deep.pm
+lib/DBM/Deep/Array.pm
+lib/DBM/Deep/Cookbook.pod
lib/DBM/Deep/Engine.pm
lib/DBM/Deep/File.pm
-lib/DBM/Deep/Array.pm
lib/DBM/Deep/Hash.pm
-lib/DBM/Deep/Cookbook.pod
lib/DBM/Deep/Internals.pod
-t/common.pm
+Makefile.PL
+MANIFEST
+META.yml
+README
t/01_basic.t
t/02_hash.t
t/03_bighash.t
t/08_deephash.t
t/09_deeparray.t
t/10_largekeys.t
-t/11_optimize.t
t/12_clone.t
t/13_setpack.t
t/14_filter.t
t/25_tie_return_value.t
t/26_scalar_ref.t
t/27_filehandle.t
-t/28_audit_trail.t
-t/29_freespace_manager.t
+t/28_index_sector.t
+t/29_largedata.t
t/30_already_tied.t
t/31_references.t
t/32_dash_ell.t
t/33_transactions.t
t/34_transaction_arrays.t
t/35_transaction_multiple.t
-t/36_transaction_deep.t
t/37_delete_edge_cases.t
-t/38_transaction_add_item.t
t/39_singletons.t
+t/40_freespace.t
+t/41_transaction_multilevel.t
+t/42_transaction_indexsector.t
+t/common.pm
sub SIG_SIZE () { 1 }
sub STALE_SIZE () { 1 }
-################################################################################
-
# Please refer to the pack() documentation for further information
my %StP = (
1 => 'C', # Unsigned char value (no order specified, presumably ASCII)
8 => 'Q', # Usigned quad (no order specified, presumably machine-dependent)
);
+################################################################################
+
sub new {
my $class = shift;
my ($args) = @_;