view release on metacpan or search on metacpan
BerkeleyDB.pod view on Meta::CPAN
values %hash ;
$env = $db->Env()
$status = $db->db_get()
$status = $db->db_exists() ;
$status = $db->db_put() ;
$status = $db->db_del() ;
$status = $db->db_sync() ;
$status = $db->db_close() ;
$status = $db->db_pget()
$hash_ref = $db->db_stat() ;
$status = $db->db_key_range();
$type = $db->type() ;
$status = $db->status() ;
$boolean = $db->byteswapped() ;
$status = $db->truncate($count) ;
$status = $db->compact($start, $stop, $c_data, $flags, $end);
$status = $db->get_blob_threshold($t1) ;
$status = $db->get_blob_dir($dir) ;
$bool = $env->cds_enabled();
BerkeleyDB.pod view on Meta::CPAN
$cursor = $db->db_join() ;
$status = $cursor->c_get() ;
$status = $cursor->c_close() ;
$status = $stream->size($S);
$status = $stream->read($data, $offset, $size);
$status = $stream->write($data, $offset);
$status = $env->txn_checkpoint()
$hash_ref = $env->txn_stat()
$status = $env->set_mutexlocks()
$status = $env->set_flags()
$status = $env->set_timeout()
$status = $env->lock_detect()
$status = $env->lsn_reset()
$status = $env->get_blob_threshold($t1) ;
$status = $env->get_blob_dir($dir) ;
$txn = $env->txn_begin() ;
$db->Txn($txn);
BerkeleyDB.pod view on Meta::CPAN
# DBM Filters
$old_filter = $db->filter_store_key ( sub { ... } ) ;
$old_filter = $db->filter_store_value( sub { ... } ) ;
$old_filter = $db->filter_fetch_key ( sub { ... } ) ;
$old_filter = $db->filter_fetch_value( sub { ... } ) ;
# deprecated, but supported
$txn_mgr = $env->TxnMgr();
$status = $txn_mgr->txn_checkpoint()
$hash_ref = $txn_mgr->txn_stat()
$txn = $txn_mgr->txn_begin() ;
=head1 DESCRIPTION
B<NOTE: This document is still under construction. Expect it to be
incomplete in places.>
This Perl module provides an interface to most of the functionality
available in Berkeley DB versions 2, 3, 5 and 6. In general it is safe to assume
that the interface provided here to be identical to the Berkeley DB
BerkeleyDB.pod view on Meta::CPAN
Constructor for creating a B<TxnMgr> object.
See L<"TRANSACTIONS"> for more details of using transactions.
This method is deprecated. Access the transaction methods using the B<txn_>
methods below from the environment object directly.
=item $env->txn_begin()
TODO
=item $env->txn_stat()
TODO
=item $env->txn_checkpoint()
TODO
=item $env->status()
Returns the status of the last BerkeleyDB::Env method.
BerkeleyDB.pod view on Meta::CPAN
=head2 $lock->cds_unlock();
Removes a CDS lock. The destruction of the CDS lock object automatically
calls this method.
Note that if multiple CDS lock objects are created, the underlying write
lock will not be released until all CDS lock objects are either explicitly
unlocked with this method, or the CDS lock objects have been destroyed.
=head2 $ref = $db->db_stat()
Returns a reference to an associative array containing information about
the database. The keys of the associative array correspond directly to the
names of the fields defined in the Berkeley DB documentation. For example,
in the DB documentation, the field B<bt_version> stores the version of the
Btree database. Assuming you called B<db_stat> on a Btree database the
equivalent field would be accessed as follows:
$version = $ref->{'bt_version'} ;
BerkeleyDB.pod.P view on Meta::CPAN
values %hash ;
$env = $db->Env()
$status = $db->db_get()
$status = $db->db_exists() ;
$status = $db->db_put() ;
$status = $db->db_del() ;
$status = $db->db_sync() ;
$status = $db->db_close() ;
$status = $db->db_pget()
$hash_ref = $db->db_stat() ;
$status = $db->db_key_range();
$type = $db->type() ;
$status = $db->status() ;
$boolean = $db->byteswapped() ;
$status = $db->truncate($count) ;
$status = $db->compact($start, $stop, $c_data, $flags, $end);
$status = $db->get_blob_threshold($t1) ;
$status = $db->get_blob_dir($dir) ;
$bool = $env->cds_enabled();
BerkeleyDB.pod.P view on Meta::CPAN
$cursor = $db->db_join() ;
$status = $cursor->c_get() ;
$status = $cursor->c_close() ;
$status = $stream->size($S);
$status = $stream->read($data, $offset, $size);
$status = $stream->write($data, $offset);
$status = $env->txn_checkpoint()
$hash_ref = $env->txn_stat()
$status = $env->set_mutexlocks()
$status = $env->set_flags()
$status = $env->set_timeout()
$status = $env->lock_detect()
$status = $env->lsn_reset()
$status = $env->get_blob_threshold($t1) ;
$status = $env->get_blob_dir($dir) ;
$txn = $env->txn_begin() ;
$db->Txn($txn);
BerkeleyDB.pod.P view on Meta::CPAN
# DBM Filters
$old_filter = $db->filter_store_key ( sub { ... } ) ;
$old_filter = $db->filter_store_value( sub { ... } ) ;
$old_filter = $db->filter_fetch_key ( sub { ... } ) ;
$old_filter = $db->filter_fetch_value( sub { ... } ) ;
# deprecated, but supported
$txn_mgr = $env->TxnMgr();
$status = $txn_mgr->txn_checkpoint()
$hash_ref = $txn_mgr->txn_stat()
$txn = $txn_mgr->txn_begin() ;
=head1 DESCRIPTION
B<NOTE: This document is still under construction. Expect it to be
incomplete in places.>
This Perl module provides an interface to most of the functionality
available in Berkeley DB versions 2, 3, 5 and 6. In general it is safe to assume
that the interface provided here to be identical to the Berkeley DB
BerkeleyDB.pod.P view on Meta::CPAN
Constructor for creating a B<TxnMgr> object.
See L<"TRANSACTIONS"> for more details of using transactions.
This method is deprecated. Access the transaction methods using the B<txn_>
methods below from the environment object directly.
=item $env->txn_begin()
TODO
=item $env->txn_stat()
TODO
=item $env->txn_checkpoint()
TODO
=item $env->status()
Returns the status of the last BerkeleyDB::Env method.
BerkeleyDB.pod.P view on Meta::CPAN
=head2 $lock->cds_unlock();
Removes a CDS lock. The destruction of the CDS lock object automatically
calls this method.
Note that if multiple CDS lock objects are created, the underlying write
lock will not be released until all CDS lock objects are either explicitly
unlocked with this method, or the CDS lock objects have been destroyed.
=head2 $ref = $db->db_stat()
Returns a reference to an associative array containing information about
the database. The keys of the associative array correspond directly to the
names of the fields defined in the Berkeley DB documentation. For example,
in the DB documentation, the field B<bt_version> stores the version of the
Btree database. Assuming you called B<db_stat> on a Btree database the
equivalent field would be accessed as follows:
$version = $ref->{'bt_version'} ;
BerkeleyDB.xs view on Meta::CPAN
DualType
env_txn_checkpoint(env, kbyte, min, flags=0)
BerkeleyDB::Env env
long kbyte
long min
u_int32_t flags
PREINIT:
dMY_CXT;
HV *
txn_stat(env)
BerkeleyDB::Env env
HV * RETVAL = NULL ;
PREINIT:
dMY_CXT;
CODE:
{
DB_TXN_STAT * stat ;
#ifdef AT_LEAST_DB_4
if(env->Env->txn_stat(env->Env, &stat, 0) == 0) {
#else
# ifdef AT_LEAST_DB_3_3
if(txn_stat(env->Env, &stat) == 0) {
# else
# if DB_VERSION_MAJOR == 2
if(txn_stat(env->Env->tx_info, &stat, safemalloc) == 0) {
# else
if(txn_stat(env->Env, &stat, safemalloc) == 0) {
# endif
# endif
#endif
RETVAL = (HV*)sv_2mortal((SV*)newHV()) ;
hv_store_iv(RETVAL, "st_time_ckp", stat->st_time_ckp) ;
hv_store_iv(RETVAL, "st_last_txnid", stat->st_last_txnid) ;
hv_store_iv(RETVAL, "st_maxtxns", stat->st_maxtxns) ;
hv_store_iv(RETVAL, "st_naborts", stat->st_naborts) ;
hv_store_iv(RETVAL, "st_nbegins", stat->st_nbegins) ;
hv_store_iv(RETVAL, "st_ncommits", stat->st_ncommits) ;
BerkeleyDB.xs view on Meta::CPAN
}
RETVAL = my_db_open(db, ref, ref_dbenv, dbenv, txn, file, subname,
DB_HASH, flags, mode, &info, enc_passwd, enc_flags, hash) ;
Trace(("_db_open_hash end\n")) ;
}
OUTPUT:
RETVAL
HV *
db_stat(db, flags=0)
int flags
BerkeleyDB::Common db
HV * RETVAL = NULL ;
PREINIT:
dMY_CXT;
INIT:
ckActive_Database(db->active) ;
CODE:
{
#if DB_VERSION_MAJOR == 2
BerkeleyDB.xs view on Meta::CPAN
}
RETVAL = my_db_open(db, ref, ref_dbenv, dbenv, txn, file, subname,
DB_BTREE, flags, mode, &info, enc_passwd, enc_flags, hash) ;
}
OUTPUT:
RETVAL
HV *
db_stat(db, flags=0)
int flags
BerkeleyDB::Common db
HV * RETVAL = NULL ;
PREINIT:
dMY_CXT;
INIT:
ckActive_Database(db->active) ;
CODE:
{
DB_BTREE_STAT * stat ;
BerkeleyDB.xs view on Meta::CPAN
#endif /* ALLOW_RECNO_OFFSET */
RETVAL = my_db_open(db, ref, ref_dbenv, dbenv, txn, file, subname,
DB_QUEUE, flags, mode, &info, enc_passwd, enc_flags, hash) ;
#endif
}
OUTPUT:
RETVAL
HV *
db_stat(db, flags=0)
int flags
BerkeleyDB::Common db
HV * RETVAL = NULL ;
PREINIT:
dMY_CXT;
INIT:
ckActive_Database(db->active) ;
CODE:
{
#if DB_VERSION_MAJOR == 2
BerkeleyDB.xs view on Meta::CPAN
DualType
xx_txn_checkpoint(txnp, kbyte, min, flags=0)
BerkeleyDB::TxnMgr txnp
long kbyte
long min
u_int32_t flags
PREINIT:
dMY_CXT;
HV *
txn_stat(txnp)
BerkeleyDB::TxnMgr txnp
HV * RETVAL = NULL ;
PREINIT:
dMY_CXT;
CODE:
{
DB_TXN_STAT * stat ;
#ifdef AT_LEAST_DB_4
if(txnp->env->Env->txn_stat(txnp->env->Env, &stat, 0) == 0) {
#else
# ifdef AT_LEAST_DB_3_3
if(txn_stat(txnp->env->Env, &stat) == 0) {
# else
# if DB_VERSION_MAJOR == 2
if(txn_stat(txnp->env->Env->tx_info, &stat, safemalloc) == 0) {
# else
if(txn_stat(txnp->env->Env, &stat, safemalloc) == 0) {
# endif
# endif
#endif
RETVAL = (HV*)sv_2mortal((SV*)newHV()) ;
hv_store_iv(RETVAL, "st_time_ckp", stat->st_time_ckp) ;
hv_store_iv(RETVAL, "st_last_txnid", stat->st_last_txnid) ;
hv_store_iv(RETVAL, "st_maxtxns", stat->st_maxtxns) ;
hv_store_iv(RETVAL, "st_naborts", stat->st_naborts) ;
hv_store_iv(RETVAL, "st_nbegins", stat->st_nbegins) ;
hv_store_iv(RETVAL, "st_ncommits", stat->st_ncommits) ;
BerkeleyDB.xs view on Meta::CPAN
OUTPUT:
RETVAL
flags
DualType
set_range(seq)
BerkeleyDB::Sequence seq;
NOT_IMPLEMENTED_YET
DualType
stat(seq)
BerkeleyDB::Sequence seq;
NOT_IMPLEMENTED_YET
MODULE = BerkeleyDB PACKAGE = BerkeleyDB
BOOT:
{
#ifdef dTHX
dTHX;
my $value ;
ok $cursor->c_get($key, $value, DB_SET) == 0 ;
ok $key eq "Wall" && $value eq "Larry" ;
ok $cursor->c_get($key, $value, DB_NEXT) == 0 ;
ok $key eq "Wall" && $value eq "Stone" ;
ok $cursor->c_get($key, $value, DB_NEXT) == 0 ;
ok $key eq "Wall" && $value eq "Brick" ;
ok $cursor->c_get($key, $value, DB_NEXT) == 0 ;
ok $key eq "Wall" && $value eq "Brick" ;
#my $ref = $db->db_stat() ;
#ok ($ref->{bt_flags} | DB_DUP) == DB_DUP ;
#print "bt_flags " . $ref->{bt_flags} . " DB_DUP " . DB_DUP ."\n";
undef $db ;
undef $cursor ;
untie %hash ;
}
{
my $lex = new LexFile $Dfile ;
my $recs = ($BerkeleyDB::db_version >= 3.1 ? "bt_ndata" : "bt_nrecs") ;
my %hash ;
my ($k, $v) ;
ok my $db = new BerkeleyDB::Btree -Filename => $Dfile,
-Flags => DB_CREATE,
-Minkey =>3 ,
-Pagesize => 2 **12
;
my $ref = $db->db_stat() ;
ok $ref->{$recs} == 0;
ok $ref->{'bt_minkey'} == 3;
ok $ref->{'bt_pagesize'} == 2 ** 12;
# create some data
my %data = (
"red" => 2,
"green" => "house",
"blue" => "sea",
) ;
my $ret = 0 ;
while (($k, $v) = each %data) {
$ret += $db->db_put($k, $v) ;
}
ok $ret == 0 ;
$ref = $db->db_stat() ;
ok $ref->{$recs} == 3;
}
{
# sub-class test
package Another ;
use strict ;
my $value ;
ok $cursor->c_get($key, $value, DB_SET) == 0 ;
ok $key eq "Wall" && $value eq "Larry" ;
ok $cursor->c_get($key, $value, DB_NEXT) == 0 ;
ok $key eq "Wall" && $value eq "Stone" ;
ok $cursor->c_get($key, $value, DB_NEXT) == 0 ;
ok $key eq "Wall" && $value eq "Brick" ;
ok $cursor->c_get($key, $value, DB_NEXT) == 0 ;
ok $key eq "Wall" && $value eq "Brick" ;
#my $ref = $db->db_stat() ;
#ok $ref->{bt_flags} | DB_DUP ;
# test DB_DUP_NEXT
my ($k, $v) = ("Wall", "") ;
ok $cursor->c_get($k, $v, DB_SET) == 0 ;
ok $k eq "Wall" && $v eq "Larry" ;
ok $cursor->c_get($k, $v, DB_NEXT_DUP) == 0 ;
ok $k eq "Wall" && $v eq "Stone" ;
ok $cursor->c_get($k, $v, DB_NEXT_DUP) == 0 ;
ok $k eq "Wall" && $v eq "Brick" ;
my $value ;
ok $cursor->c_get($key, $value, DB_SET) == 0 ;
ok $key eq "Wall" && $value eq "Larry" ;
ok $cursor->c_get($key, $value, DB_NEXT) == 0 ;
ok $key eq "Wall" && $value eq "Stone" ;
ok $cursor->c_get($key, $value, DB_NEXT) == 0 ;
ok $key eq "Wall" && $value eq "Brick" ;
ok $cursor->c_get($key, $value, DB_NEXT) == 0 ;
ok $key eq "Wall" && $value eq "Brick" ;
#my $ref = $db->db_stat() ;
#ok ($ref->{bt_flags} | DB_DUP) == DB_DUP ;
#print "bt_flags " . $ref->{bt_flags} . " DB_DUP " . DB_DUP ."\n";
undef $db ;
undef $cursor ;
untie %hash ;
}
{
my $lex = new LexFile $Dfile ;
my $recs = ($BerkeleyDB::db_version >= 3.1 ? "bt_ndata" : "bt_nrecs") ;
my %hash ;
my ($k, $v) ;
ok my $db = new BerkeleyDB::Heap -Filename => $Dfile,
-Flags => DB_CREATE,
-Minkey =>3 ,
-Pagesize => 2 **12
;
my $ref = $db->db_stat() ;
ok $ref->{$recs} == 0;
ok $ref->{'bt_minkey'} == 3;
ok $ref->{'bt_pagesize'} == 2 ** 12;
# create some data
my %data = (
"red" => 2,
"green" => "house",
"blue" => "sea",
) ;
my $ret = 0 ;
while (($k, $v) = each %data) {
$ret += $db->db_put($k, $v) ;
}
ok $ret == 0 ;
$ref = $db->db_stat() ;
ok $ref->{$recs} == 3;
}
{
# sub-class test
package Another ;
use strict ;
my @array ;
my ($k, $v) ;
my $rec_len = 7 ;
ok my $db = new BerkeleyDB::Queue -Filename => $Dfile,
-Flags => DB_CREATE,
-Pagesize => 4 * 1024,
-Len => $rec_len,
-Pad => " "
;
my $ref = $db->db_stat() ;
ok $ref->{$recs} == 0;
ok $ref->{'qs_pagesize'} == 4 * 1024;
# create some data
my @data = (
2,
"house",
"sea",
) ;
my $ret = 0 ;
my $i ;
for ($i = $db->ArrayOffset ; @data ; ++$i) {
$ret += $db->db_put($i, shift @data) ;
}
ok $ret == 0 ;
$ref = $db->db_stat() ;
ok $ref->{$recs} == 3;
}
{
# sub-class test
package Another ;
use strict ;
my $lex = new LexFile $Dfile ;
my $recs = ($BerkeleyDB::db_version >= 3.1 ? "bt_ndata" : "bt_nrecs") ;
my @array ;
my ($k, $v) ;
ok my $db = new BerkeleyDB::Recno -Filename => $Dfile,
-Flags => DB_CREATE,
-Pagesize => 4 * 1024,
;
my $ref = $db->db_stat() ;
ok $ref->{$recs} == 0;
ok $ref->{'bt_pagesize'} == 4 * 1024;
# create some data
my @data = (
2,
"house",
"sea",
) ;
my $ret = 0 ;
my $i ;
for ($i = $db->ArrayOffset ; @data ; ++$i) {
$ret += $db->db_put($i, shift @data) ;
}
ok $ret == 0 ;
$ref = $db->db_stat() ;
ok $ref->{$recs} == 3;
}
{
# sub-class test
package Another ;
use strict ;
# there shouldn't be any records in the database
$count = 0 ;
# sequence forwards
ok $cursor = $db1->db_cursor() ;
while ($cursor->c_get($k, $v, DB_NEXT) == 0) {
++ $count ;
}
ok $count == 0 ;
my $stat = $env->txn_stat() ;
ok $stat->{'st_naborts'} == 1 ;
undef $txn ;
undef $cursor ;
undef $db1 ;
undef $env ;
untie %hash ;
}
{
# there shouldn't be any records in the database
$count = 0 ;
# sequence forwards
ok $cursor = $db1->db_cursor() ;
while ($cursor->c_get($k, $v, DB_NEXT) == 0) {
++ $count ;
}
ok $count == 0 ;
my $stat = $txn_mgr->txn_stat() ;
ok $stat->{'st_naborts'} == 1 ;
undef $txn ;
undef $cursor ;
undef $db1 ;
undef $txn_mgr ;
undef $env ;
untie %hash ;
}
ok $txn->txn_commit() == 0 ;
$count = 0 ;
# sequence forwards
ok $cursor = $db1->db_cursor() ;
while ($cursor->c_get($k, $v, DB_NEXT) == 0) {
++ $count ;
}
ok $count == 3 ;
my $stat = $env->txn_stat() ;
ok $stat->{'st_naborts'} == 0 ;
undef $txn ;
undef $cursor ;
undef $db1 ;
undef $env ;
untie %hash ;
}
{
ok $txn->txn_commit() == 0 ;
$count = 0 ;
# sequence forwards
ok $cursor = $db1->db_cursor() ;
while ($cursor->c_get($k, $v, DB_NEXT) == 0) {
++ $count ;
}
ok $count == 3 ;
my $stat = $txn_mgr->txn_stat() ;
ok $stat->{'st_naborts'} == 0 ;
undef $txn ;
undef $cursor ;
undef $db1 ;
undef $txn_mgr ;
undef $env ;
untie %hash ;
}