diff options
Diffstat (limited to 'lang/perl/BerkeleyDB/BerkeleyDB.pm')
| -rw-r--r-- | lang/perl/BerkeleyDB/BerkeleyDB.pm | 82 |
1 files changed, 75 insertions, 7 deletions
diff --git a/lang/perl/BerkeleyDB/BerkeleyDB.pm b/lang/perl/BerkeleyDB/BerkeleyDB.pm index 45f64c87..8eb0a3a5 100644 --- a/lang/perl/BerkeleyDB/BerkeleyDB.pm +++ b/lang/perl/BerkeleyDB/BerkeleyDB.pm @@ -2,7 +2,7 @@ package BerkeleyDB; -# Copyright (c) 1997-2011 Paul Marquess. All rights reserved. +# Copyright (c) 1997-2013 Paul Marquess. All rights reserved. # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl itself. # @@ -10,18 +10,16 @@ package BerkeleyDB; # The documentation for this module is at the bottom of this file, # after the line __END__. -BEGIN { require 5.005 } +use 5.006; use strict; use Carp; use vars qw($VERSION @ISA @EXPORT $AUTOLOAD $use_XSLoader); -$VERSION = '0.50'; +$VERSION = '0.55'; require Exporter; -#require DynaLoader; -require AutoLoader; BEGIN { $use_XSLoader = 1 ; @@ -77,6 +75,7 @@ BEGIN { DB_CDB_ALLDB DB_CHECKPOINT DB_CHKSUM + DB_CHKSUM_FAIL DB_CHKSUM_SHA1 DB_CKP_INTERNAL DB_CLIENT @@ -160,11 +159,14 @@ BEGIN { DB_ENV_TXN_WRITE_NOSYNC DB_ENV_USER_ALLOC DB_ENV_YIELDCPU + DB_EVENT_FAILCHK_PANIC + DB_EVENT_MUTEX_DIED DB_EVENT_NOT_HANDLED DB_EVENT_NO_SUCH_EVENT DB_EVENT_PANIC DB_EVENT_REG_ALIVE DB_EVENT_REG_PANIC + DB_EVENT_REP_AUTOTAKEOVER_FAILED DB_EVENT_REP_CLIENT DB_EVENT_REP_CONNECT_BROKEN DB_EVENT_REP_CONNECT_ESTD @@ -173,6 +175,7 @@ BEGIN { DB_EVENT_REP_ELECTED DB_EVENT_REP_ELECTION_FAILED DB_EVENT_REP_INIT_DONE + DB_EVENT_REP_INQUEUE_FULL DB_EVENT_REP_JOIN_FAILURE DB_EVENT_REP_LOCAL_SITE_REMOVED DB_EVENT_REP_MASTER @@ -185,9 +188,12 @@ BEGIN { DB_EVENT_REP_WOULD_ROLLBACK DB_EVENT_WRITE_FAILED DB_EXCL + DB_EXIT_FAILCHK + DB_EXIT_FILE_EXISTS DB_EXTENT DB_FAILCHK DB_FAILCHK_ISALIVE + DB_FAILURE_SYMPTOM_SIZE DB_FAST_STAT DB_FCNTL_LOCKING DB_FILEOPEN @@ -234,6 +240,7 @@ BEGIN { DB_INIT_REP DB_INIT_TXN DB_INORDER + DB_INTERNAL_BLOB_DB DB_INTERNAL_DB DB_INTERNAL_PERSISTENT_DB DB_INTERNAL_TEMPORARY_DB @@ -298,6 +305,7 @@ BEGIN { DB_LOGVERSION_LATCHING DB_LOG_AUTOREMOVE DB_LOG_AUTO_REMOVE + DB_LOG_BLOB DB_LOG_BUFFER_FULL DB_LOG_CHKPNT DB_LOG_COMMIT @@ -308,6 +316,7 @@ BEGIN { DB_LOG_IN_MEMORY DB_LOG_LOCKED DB_LOG_NOCOPY + DB_LOG_NOSYNC DB_LOG_NOT_DURABLE DB_LOG_NO_DATA DB_LOG_PERM @@ -353,8 +362,10 @@ BEGIN { DB_MUTEXDEBUG DB_MUTEXLOCKS DB_MUTEX_ALLOCATED + DB_MUTEX_DESCRIBE_STRLEN DB_MUTEX_LOCKED DB_MUTEX_LOGICAL_LOCK + DB_MUTEX_OWNER_DEAD DB_MUTEX_PROCESS_ONLY DB_MUTEX_SELF_BLOCK DB_MUTEX_SHARED @@ -446,9 +457,12 @@ BEGIN { DB_REPMGR_ACKS_QUORUM DB_REPMGR_CONF_2SITE_STRICT DB_REPMGR_CONF_ELECTIONS + DB_REPMGR_CONF_PREFMAS_CLIENT + DB_REPMGR_CONF_PREFMAS_MASTER DB_REPMGR_CONNECTED DB_REPMGR_DISCONNECTED DB_REPMGR_ISPEER + DB_REPMGR_ISVIEW DB_REPMGR_NEED_RESPONSE DB_REPMGR_PEER DB_REP_ACK_TIMEOUT @@ -460,6 +474,7 @@ BEGIN { DB_REP_CONF_AUTOROLLBACK DB_REP_CONF_BULK DB_REP_CONF_DELAYCLIENT + DB_REP_CONF_ELECT_LOGLENGTH DB_REP_CONF_INMEM DB_REP_CONF_LEASE DB_REP_CONF_NOAUTOINIT @@ -520,6 +535,7 @@ BEGIN { DB_SET DB_SET_LOCK_TIMEOUT DB_SET_LTE + DB_SET_MUTEX_FAILCHK_TIMEOUT DB_SET_RANGE DB_SET_RECNO DB_SET_REG_TIMEOUT @@ -540,6 +556,9 @@ BEGIN { DB_STAT_NOERROR DB_STAT_SUBSYSTEM DB_STAT_SUMMARY + DB_STREAM_READ + DB_STREAM_SYNC_WRITE + DB_STREAM_WRITE DB_ST_DUPOK DB_ST_DUPSET DB_ST_DUPSORT @@ -619,6 +638,7 @@ BEGIN { DB_VERB_DEADLOCK DB_VERB_FILEOPS DB_VERB_FILEOPS_ALL + DB_VERB_MVCC DB_VERB_RECOVERY DB_VERB_REGISTER DB_VERB_REPLICATION @@ -662,6 +682,7 @@ BEGIN { LOGREC_Done LOGREC_HDR LOGREC_LOCKS + LOGREC_LONGARG LOGREC_OP LOGREC_PGDBT LOGREC_PGDDBT @@ -919,6 +940,8 @@ sub new SharedMemKey => undef, Set_Lk_Exclusive => undef, ThreadCount => 0, + BlobThreshold => 0, + BlobDir => undef, }, @_) ; my $errfile = $got->{ErrFile} ; @@ -1058,6 +1081,10 @@ sub new WriteKey => undef, ReadValue => undef, WriteValue => undef, + + # Blob + BlobThreshold => 0, + BlobDir => undef, }, @_) ; croak("Env not of type BerkeleyDB::Env") @@ -1118,6 +1145,10 @@ sub new DupCompare => undef, Prefix => undef, set_bt_compress => undef, + + # Blob + BlobThreshold => 0, + BlobDir => undef, }, @_) ; croak("Env not of type BerkeleyDB::Env") @@ -1190,6 +1221,10 @@ sub new # Heap specific HeapSize => undef, HeapSizeGb => undef, + + # Blob + BlobThreshold => 0, + BlobDir => undef, }, @_) ; croak("Env not of type BerkeleyDB::Env") @@ -1899,12 +1934,45 @@ sub c_dup return $obj ; } +sub c_get_db_stream +{ + my $cursor = shift ; + + my $addr = $cursor->_c_get_db_stream(@_); + my $obj ; + $obj = bless [$addr, $cursor] , "BerkeleyDB::DbStream" if $addr ; + return $obj ; +} + +sub db_stream +{ + my $db = shift ; + my ($addr) = $db->_db_stream(@_) ; + my $obj ; + $obj = bless [$addr, $db] , "BerkeleyDB::DbStream" if $addr ; + return $obj ; +} + +#sub gdbs +#{ +# my $cursor = shift ; +# +# my $k = ''; +# my $v = ''; +# $db->partial_set(0,0) ; +# ok $cursor->c_get($k, $v, DB_FIRST) == 0, "set cursor" +# or diag "Status is [" . $cursor->status() . "]"; +# $db->partial_clear() ; +# is $k, "1"; +#} + sub DESTROY { my $self = shift ; $self->_DESTROY() ; } + package BerkeleyDB::TxnMgr ; sub DESTROY @@ -2009,7 +2077,8 @@ sub cds_unlock if ($Count{"$db"} == 0) { $Object{"$db"}->c_close() ; - undef $Object{"$db"}; + delete $Object{"$db"}; + delete $Count{"$db"}; } return 1 ; @@ -2036,7 +2105,6 @@ package BerkeleyDB ; -# Autoload methods go after =cut, and are processed by the autosplit program. 1; __END__ |
