BDB

 view release on metacpan or  search on metacpan

BDB.pm  view on Meta::CPAN

   $int = $db->set_lorder (int lorder)
   $int = $db->set_bt_minkey (U32 minkey)
   $int = $db->set_re_delim (int delim)
   $int = $db->set_re_pad (int re_pad)
   $int = $db->set_re_source (char *source)
   $int = $db->set_re_len (U32 re_len)
   $int = $db->set_h_ffactor (U32 h_ffactor)
   $int = $db->set_h_nelem (U32 h_nelem)
   $int = $db->set_q_extentsize (U32 extentsize)

   $dbc = $db->cursor (DB_TXN_ornull *txn = 0, U32 flags = 0)
      flags: READ_COMMITTED READ_UNCOMMITTED WRITECURSOR TXN_SNAPSHOT
   $seq = $db->sequence (U32 flags = 0)

=head3 Example:

   my $db = db_create $env;
   db_open $db, undef, "table", undef, BDB::BTREE, BDB::AUTO_COMMIT | BDB::CREATE | BDB::READ_UNCOMMITTED, 0600;

   for (1..1000) {
      db_put $db, undef, "key $_", "data $_";

BDB.pm  view on Meta::CPAN

           if (txn)
             txn->abort (txn);

   $int = $txn->set_timeout (NV timeout_seconds, U32 flags = SET_TXN_TIMEOUT)
      flags: SET_LOCK_TIMEOUT SET_TXN_TIMEOUT

   $bool = $txn->failed
   # see db_txn_finish documentation, above


=head2 DBC/cursor methods

Methods available on DBC/$dbc handles:

   DESTROY (DBC_ornull *dbc)
           CODE:
           if (dbc)
             dbc->c_close (dbc);

   $int = $cursor->set_priority ($priority = PRIORITY_*) (v4.6)

=head3 Example:

   my $c = $db->cursor;

   for (;;) {
      db_c_get $c, my $key, my $data, BDB::NEXT;
      warn "<$!,$key,$data>";
      last if $!;
   }

   db_c_close $c;


BDB.xs  view on Meta::CPAN

#endif

typedef char *bdb_filename;

static SV *prepare_cb;

static HV
  *bdb_stash,
  *bdb_env_stash,
  *bdb_txn_stash,
  *bdb_cursor_stash,
  *bdb_db_stash,
  *bdb_sequence_stash;

#if DBVER >= 406
# define c_close close 
# define c_count count 
# define c_del   del   
# define c_dup   dup   
# define c_get   get   
# define c_pget  pget  

BDB.xs  view on Meta::CPAN

# endif
#if DBVER >= 408
          const_iv (LOGVERSION_LATCHING)
#endif
#endif
        };

	bdb_stash          = gv_stashpv ("BDB"          , 1);
        bdb_env_stash      = gv_stashpv ("BDB::Env"     , 1);
        bdb_txn_stash      = gv_stashpv ("BDB::Txn"     , 1);
        bdb_cursor_stash   = gv_stashpv ("BDB::Cursor"  , 1);
        bdb_db_stash       = gv_stashpv ("BDB::Db"      , 1);
        bdb_sequence_stash = gv_stashpv ("BDB::Sequence", 1);

        for (civ = const_iv + sizeof (const_iv) / sizeof (const_iv [0]); civ > const_iv; civ--)
          newCONSTSUB (bdb_stash, (char *)civ[-1].name, newSViv (civ[-1].iv));

        prepare_cb = &PL_sv_undef;

        {
          /* we currently only allow version, minor-version and patchlevel to go up to 255 */

BDB.xs  view on Meta::CPAN

	OUTPUT:
        RETVAL

int set_q_extentsize (DB *db, U32 extentsize)
	CODE:
        RETVAL = db->set_q_extentsize (db, extentsize);
	OUTPUT:
        RETVAL

DBC *
cursor (DB *db, DB_TXN_ornull *txn = 0, U32 flags = 0)
	CODE:
        errno = db->cursor (db, txn, &RETVAL, flags);
        if (errno)
          croak ("DB->cursor: %s", db_strerror (errno));
        OUTPUT:
        RETVAL

#if DBVER >= 403

DB_SEQUENCE *
sequence (DB *db, U32 flags = 0)
	CODE:
{
        errno = db_sequence_create (&RETVAL, db, flags);

Changes  view on Meta::CPAN

        - fix prototypes of (void) functions.

1.43 Sun Jan 13 11:52:49 CET 2008
	- differentiate between nuked and undef objects, so as to
          not throw an exception when destroying closed handles.

1.42 Tue Dec 25 15:22:50 CET 2007
	- do not automatically call set_thread_count.

1.41 Sat Dec 22 08:32:41 CET 2007
	- add cursor->set_priority.
        - minor optimisations and checks.
        - port to microsoft pseudo-C again.

1.4  Wed Dec 12 02:20:39 CET 2007
	- new globals BDB::VERSION and ..VERSION_STRING.
        - add db_upgrade.
        - do not die in DESTROY after explicit db_close and similar
          operations.

1.3  Fri Dec  7 14:36:25 CET 2007

README  view on Meta::CPAN

       $int = $db->set_lorder (int lorder)
       $int = $db->set_bt_minkey (U32 minkey)
       $int = $db->set_re_delim (int delim)
       $int = $db->set_re_pad (int re_pad)
       $int = $db->set_re_source (char *source)
       $int = $db->set_re_len (U32 re_len)
       $int = $db->set_h_ffactor (U32 h_ffactor)
       $int = $db->set_h_nelem (U32 h_nelem)
       $int = $db->set_q_extentsize (U32 extentsize)

       $dbc = $db->cursor (DB_TXN_ornull *txn = 0, U32 flags = 0)
          flags: READ_COMMITTED READ_UNCOMMITTED WRITECURSOR TXN_SNAPSHOT
       $seq = $db->sequence (U32 flags = 0)

   Example:
       my $db = db_create $env;
       db_open $db, undef, "table", undef, BDB::BTREE, BDB::AUTO_COMMIT | BDB::CREATE | BDB::READ_UNCOMMITTED, 0600;

       for (1..1000) {
          db_put $db, undef, "key $_", "data $_";

README  view on Meta::CPAN

               CODE:
               if (txn)
                 txn->abort (txn);

       $int = $txn->set_timeout (NV timeout_seconds, U32 flags = SET_TXN_TIMEOUT)
          flags: SET_LOCK_TIMEOUT SET_TXN_TIMEOUT

       $bool = $txn->failed
       # see db_txn_finish documentation, above

  DBC/cursor methods
    Methods available on DBC/$dbc handles:

       DESTROY (DBC_ornull *dbc)
               CODE:
               if (dbc)
                 dbc->c_close (dbc);

       $int = $cursor->set_priority ($priority = PRIORITY_*) (v4.6)

   Example:
       my $c = $db->cursor;

       for (;;) {
          db_c_get $c, my $key, my $data, BDB::NEXT;
          warn "<$!,$key,$data>";
          last if $!;
       }

       db_c_close $c;

  DB_SEQUENCE/sequence methods

eg/basic_operations  view on Meta::CPAN

$env->set_flags (BDB::AUTO_COMMIT | BDB::TXN_NOSYNC, 1);

$db = db_create $env;
db_open $db, undef, "table", undef, BDB::BTREE, BDB::AUTO_COMMIT | BDB::CREATE | BDB::READ_UNCOMMITTED, 0600;

for (1..1000) {
   db_put $db, undef, "key[$_]", "data[$_]";
   db_key_range $db, undef, "key[$_]", my $keyrange; my ($lt, $eq, $gt) = @$keyrange;
}

my $c = $db->cursor;
my @del;

for (;;) {
   db_c_get $c, my $key, my $data, BDB::NEXT;
   warn "<$!,$key,$data>";
   last if $!;
   push @del, $key if rand > 0.9;
}

{

typemap  view on Meta::CPAN

DB_SEQ
	$var = sizeof (IV) > 4 ? SvIV ($arg) : SvNV ($arg);

DB_ENV
        SvPTR ($var, $arg, DB_ENV *, bdb_env_stash, BDB::Env, 0);

DB_TXN
        SvPTR ($var, $arg, DB_TXN *, bdb_txn_stash, BDB::Txn, 0);

DBC
        SvPTR ($var, $arg, DBC *, bdb_cursor_stash, BDB::Cursor, 0);

DB
        SvPTR ($var, $arg, DB *, bdb_db_stash, BDB::Db, 0);

DB_SEQUENCE
        SvPTR ($var, $arg, DB_SEQUENCE *, bdb_sequence_stash, BDB::Sequence, 0);


DB_ENV_ornull
        SvPTR ($var, $arg, DB_ENV *, bdb_env_stash, BDB::Env, 1);

DB_TXN_ornull
        SvPTR ($var, $arg, DB_TXN *, bdb_txn_stash, BDB::Txn, 1);

DBC_ornull
        SvPTR ($var, $arg, DBC *, bdb_cursor_stash, BDB::Cursor, 1);

DB_ornull
        SvPTR ($var, $arg, DB *, bdb_db_stash, BDB::Db, 1);

DB_SEQUENCE_ornull
        SvPTR ($var, $arg, DB_SEQUENCE *, bdb_sequence_stash, BDB::Sequence, 1);


DB_ENV_ornuked
        SvPTR ($var, $arg, DB_ENV *, bdb_env_stash, BDB::Env, 2);

DB_TXN_ornuked
        SvPTR ($var, $arg, DB_TXN *, bdb_txn_stash, BDB::Txn, 2);

DBC_ornuked
        SvPTR ($var, $arg, DBC *, bdb_cursor_stash, BDB::Cursor, 2);

DB_ornuked
        SvPTR ($var, $arg, DB *, bdb_db_stash, BDB::Db, 2);

DB_SEQUENCE_ornuked
        SvPTR ($var, $arg, DB_SEQUENCE *, bdb_sequence_stash, BDB::Sequence, 2);


OUTPUT

DB_ENV
	$arg = newSVptr ($var, bdb_env_stash);

DB_TXN
	$arg = newSVptr ($var, bdb_txn_stash);

DBC
	$arg = newSVptr ($var, bdb_cursor_stash);

DB
	$arg = newSVptr ($var, bdb_db_stash);

DB_SEQUENCE
	$arg = newSVptr ($var, bdb_sequence_stash);



( run in 0.309 second using v1.01-cache-2.11-cpan-4d50c553e7e )