DB — PyBSDDB 6.1.1 documentation

# DB

Read Oracle documentation for better understanding.

More info...

## DB Methods

`DB`(dbEnv=None, flags=0)

  Constructor. More info...

`append`(data, txn=None)

  A convenient version of put() that can be used for Recno or Queue databases. The DB_APPEND flag is automatically used, and the record number is returned. More info...

`associate`(secondaryDB, callback, flags=0, txn=None)

  Used to associate secondaryDB to act as a secondary index for this (primary) database. The callback parameter should be a reference to a Python callable object that will construct and return the secondary key or DB_DONOTINDEX if the item should not be indexed. The parameters the callback will receive are the primaryKey and primaryData values. More info...

`close`(flags=0)

  Flushes cached data and closes the database. More info...

`compact(start=None, stop=None, flags=0,`
`compact_fillpercent=0, compact_pages=0, compact_timeout=0)`

  Compacts Btree and Recno access method databases, and optionally returns unused Btree, Hash or Recno database pages to the underlying filesystem.

  The method returns the number of pages returned to the filesystem. More info...

`consume`(txn=None, flags=0)

  For a database with the Queue access method, returns the record number and data from the first available record and deletes it from the queue. More info...

`consume_wait`(txn=None, flags=0)

  For a database with the Queue access method, returns the record number and data from the first available record and deletes it from the queue. If the Queue database is empty, the thread of control will wait until there is data in the queue before returning. More info...

`cursor`(txn=None, flags=0)

  Create a cursor on the DB and returns a DBCursor object. If a transaction is passed then the cursor can only be used within that transaction and you must be sure to close the cursor before commiting the transaction. More info...

`delete`(key, txn=None, flags=0)

  Removes a key/data pair from the database. More info...

`exists`(key, txn=None, flags=0)

  Test if a key exists in the database. Returns True or False. More info...

`fd`()

  Returns a file descriptor for the database. More info...

`get`(key, default=None, txn=None, flags=0, dlen=-1, doff=-1)

  Returns the data object associated with key. If key is an integer then the DB_SET_RECNO flag is automatically set for BTree databases and the actual key and the data value are returned as a tuple. If default is given then it is returned if the key is not found in the database. Partial records can be read using dlen and doff, however be sure to not read beyond the end of the actual data or you may get garbage. More info...

`pget`(key, default=None, txn=None, flags=0, dlen=-1, doff=-1)

  This method is available only on secondary databases. It will return the primary key, given the secondary one, and associated data. More info...

`get_transactional`()

  Returns True if the database is transactional. False if not. More info...

`get_priority`()

  Returns the cache priority for pages referenced by the DB handle. This priority value is set using the DB->set_priority() method. More info...

`set_priority`(priority)

  Set the cache priority for pages referenced by the DB handle.

  The priority of a page biases the replacement algorithm to be more or less likely to discard a page when space is needed in the buffer pool. The bias is temporary, and pages will eventually be discarded if they are not referenced again. The DB->set_priority() method is only advisory, and does not guarantee pages will be treated in a specific way.

  The value provided must be symbolic. Check the Oracle documentation.

  More info...

`get_dbname`()

  Returns a tuple with the filename and the database name. If there is no database name, the value returned will be None. More info...

`get_open_flags`()

  Returns the current open method flags. That is, this method returns the flags that were specified when DB->open() was called. More info...

`set_private`(object)

  Link an object to the DB object. This allows to pass around an arbitrary object. For instance, for callback context.

`get_private`()

  Give the object linked to the DB.

`get_both`(key, data, txn=None, flags=0)

  A convenient version of get() that automatically sets the DB_GET_BOTH flag, and which will be successful only if both the key and data value are found in the database. (Can be used to verify the presence of a record in the database when duplicate keys are allowed.) More info...

`get_byteswapped`()

  May be used to determine if the database was created on a machine with the same endianess as the current machine. More info...

`get_size`(key, txn=None)

  Return the size of the data object associated with key.

`get_type`()

  Return the database’s access method type. More info...

`join`(cursorList, flags=0)

  Create and return a specialized cursor for use in performing joins on secondary indices. More info...

`key_range`(key, txn=None, flags=0)

  Returns an estimate of the proportion of keys that are less than, equal to and greater than the specified key. More info...

`open`(filename, dbname=None, dbtype=DB_UNKNOWN, flags=0, mode=0660, txn=None)

  Opens the database named dbname in the file named filename. The dbname argument is optional and allows applications to have multiple logical databases in a single physical file. It is an error to attempt to open a second database in a file that was not initially created using a database name. In-memory databases never intended to be shared or preserved on disk may be created by setting both the filename and dbname arguments to None. More info...

`put`(key, data, txn=None, flags=0, dlen=-1, doff=-1)

  Stores the key/data pair in the database. If the DB_APPEND flag is used and the database is using the Recno or Queue access method then the record number allocated to the data is returned. Partial data objects can be written using dlen and doff. More info...

`remove`(filename, dbname=None, flags=0)

  Remove a database. More info...

`rename`(filename, dbname, newname, flags=0)

  Rename a database. More info...

`set_encrypt`(passwd, flags=0)

  Set the password used by the Berkeley DB library to perform encryption and decryption. Because databases opened within Berkeley DB environments use the password specified to the environment, it is an error to attempt to set a password in a database created within an environment. More info...

`get_encrypt_flags`()

  Returns the encryption flags. More info...

`set_bt_compare`(compareFunc)

  Set the B-Tree database comparison function. This can only be called once before the database has been opened. compareFunc takes two arguments: (left key string, right key string) It must return a -1, 0, 1 integer similar to cmp. You can shoot your database in the foot, beware! Read the Berkeley DB docs for the full details of how the comparison function MUST behave. More info...

`get_bt_minkey`()

  Returns the minimum number of key/data pairs intended to be stored on any single Btree leaf page. This value can be set using the DB->set_bt_minkey() method. More info...

`set_bt_minkey`(minKeys)

  Set the minimum number of keys that will be stored on any single BTree page. More info...

`set_cachesize`(gbytes, bytes, ncache=0)

  Set the size of the database’s shared memory buffer pool. More info...

`get_cachesize`()

  Returns a tuple with the current size and composition of the cache. More info...

`set_dup_compare`(compareFunc)

  Set the duplicate data item comparison function. This can only be called once before the database has been opened. compareFunc takes two arguments: (left key string, right key string) It must return a -1, 0, 1 integer similar to cmp. You can shoot your database in the foot, beware! Read the Berkeley DB docs for the full details of how the comparison function MUST behave. More info...

`set_get_returns_none`(flag)

  Controls what get and related methods do when a key is not found.

  See the DBEnv set_get_returns_none documentation.

  The previous setting is returned.

`get_flags`()

  Returns the current database flags as set by the DB->set_flags() method. More info...

`set_flags`(flags)

  Set additional flags on the database before opening. More info...

`get_h_ffactor`()

  Returns the hash table density as set by the DB->set_h_ffactor() method. More info...

`set_h_ffactor`(ffactor)

  Set the desired density within the hash table. More info...

`get_h_nelem`()

  Returns the estimate of the final size of the hash table as set by the DB->set_h_nelem() method. More info...

`set_h_nelem`(nelem)

  Set an estimate of the final size of the hash table. More info...

`get_lorder`()

  Returns the database byte order; a byte order of 4,321 indicates a big endian order, and a byte order of 1,234 indicates a little endian order. This value is set using the DB->set_lorder() method. More info...

`set_lorder`(lorder)

  Set the byte order for integers in the stored database metadata. More info...

`get_pagesize`()

  Returns the database’s current page size, as set by the DB->set_pagesize() method. More info...

`set_pagesize`(pagesize)

  Set the size of the pages used to hold items in the database, in bytes. More info...

`get_re_delim`()

  Returns the delimiting byte, which is used to mark the end of a record in the backing source file for the Recno access method. The return value will be a numeric byte value. More info...

`set_re_delim`(delim)

  Set the delimiting byte used to mark the end of a record in the backing source file for the Recno access method. You can specify a char or a numeric byte value. More info...

`get_re_len`()

  Returns the length of the records held in a Queue access method database. This value can be set using the DB->set_re_len() method. More info...

`set_re_len`(length)

  For the Queue access method, specify that the records are of length length. For the Recno access method, specify that the records are fixed-length, not byte delimited, and are of length length. More info...

`get_re_pad`()

  Returns the pad character used for short, fixed-length records used by the Queue and Recno access methods. The method returns a byte value. More info...

`set_re_pad`(pad)

  Set the padding character for short, fixed-length records for the Queue and Recno access methods. You can specify a char or a numeric byte value. More info...

`get_re_source`()

  Returns the source file used by the Recno access method. This file is configured for the Recno access method using the DB->set_re_source() method. More info...

`set_re_source`(source)

  Set the underlying source file for the Recno access method. More info...

`get_q_extentsize`()

  Returns the number of pages in an extent. This value is used only for Queue databases and is set using the DB->set_q_extentsize() method. More info...

`set_q_extentsize`(extentsize)

  Set the size of the extents used to hold pages in a Queue database, specified as a number of pages. Each extent is created as a separate physical file. If no extent size is set, the default behavior is to create only a single underlying database file. More info...

`stat`(flags=0, txn=None)

  Return a dictionary containing database statistics with the following keys.

  For Hash databases:

  > magic | Magic number that identifies the file as a Hash database.
  > version | Version of the Hash database.
  > nkeys | Number of unique keys in the database.
  > ndata | Number of key/data pairs in the database.
  > pagecnt | The number of pages in the database.
  > pagesize | Underlying Hash database page (& bucket) size.
  > nelem | Estimated size of the hash table specified at database creation time.
  > ffactor | Desired fill factor (number of items per bucket) specified at database creation time.
  > buckets | Number of hash buckets.
  > free | Number of pages on the free list.
  > bfree | Number of bytes free on bucket pages.
  > bigpages | Number of big key/data pages.
  > big_bfree | Number of bytes free on big item pages.
  > overflows | Number of overflow pages (overflow pages are pages that contain items that did not fit in the main bucket page).
  > ovfl_free | Number of bytes free on overflow pages.
  > dup | Number of duplicate pages.
  > dup_free | Number of bytes free on duplicate pages.

  For BTree and Recno databases:

  > magic | Magic number that identifies the file as a Btree database.
  > version | Version of the Btree database.
  > nkeys | For the Btree Access Method, the number of unique keys in the database. For the Recno Access Method, the number of records in the database. If the database has been configured to not re-number records during deletion, the number of records may include records that have been deleted.
  > ndata | For the Btree Access Method, the number of key/data pairs in the database. For the Recno Access Method, the number of records in the database. If the database has been configured to not re-number records during deletion, the number of records may include records that have been deleted.
  > pagecnt | The number of pages in the database.
  > pagesize | Underlying database page size.
  > minkey | Minimum keys per page.
  > re_len | Length of fixed-length records.
  > re_pad | Padding byte value for fixed-length records.
  > levels | Number of levels in the database.
  > int_pg | Number of database internal pages.
  > leaf_pg | Number of database leaf pages.
  > dup_pg | Number of database duplicate pages.
  > over_pg | Number of database overflow pages.
  > empty_pg | Number of empty database pages.
  > free | Number of pages on the free list.
  > int_pgfree | Num of bytes free in database internal pages.
  > leaf_pgfree | Number of bytes free in database leaf pages.
  > dup_pgfree | Num bytes free in database duplicate pages.
  > over_pgfree | Num of bytes free in database overflow pages.

  For Queue databases:

  > magic | Magic number that identifies the file as a Queue database.
  > version | Version of the Queue file type.
  > nkeys | Number of records in the database.
  > ndata | Number of records in the database.
  > pagesize | Underlying database page size.
  > extentsize | Underlying database extent size, in pages.
  > pages | Number of pages in the database.
  > re_len | Length of the records.
  > re_pad | Padding byte value for the records.
  > pgfree | Number of bytes free in database pages.
  > first_recno | First undeleted record in the database.
  > cur_recno | Last allocated record number in the database.

  More info...

`stat_print`(flags=0)

  Displays the database statistical information. More info...

`sync`(flags=0)

  Flushes any cached information to disk. More info...

`truncate`(txn=None, flags=0)

  Empties the database, discarding all records it contains. The number of records discarded from the database is returned. More info...

`upgrade`(filename, flags=0)

  Upgrades all of the databases included in the file filename, if necessary. More info...

`verify`(filename, dbname=None, outfile=None, flags=0)

  Verifies the integrity of all databases in the file specified by the filename argument, and optionally outputs the databases’ key/data pairs to a file. More info...

## DB Mapping and Compatibility Methods

These methods of the DB type are for implementing the Mapping Interface, as well as others for making a DB behave as much like a dictionary as possible. The main downside to using a DB as a dictionary is you are not able to specify a transaction object.

`DB_length() [ usage: len(db) ]`

  Return the number of key/data pairs in the database.

`DB_subscript(key) [ usage: db[key] ]`

  Return the data associated with key.

`DB_ass_sub(key, data) [ usage: db[key] = data ]`

  Assign or update a key/data pair, or delete a key/data pair if data is NULL.

`keys`(txn=None)

  Return a list of all keys in the database. Warning: this method traverses the entire database so it can possibly take a long time to complete.

`items`(txn=None)

  Return a list of tuples of all key/data pairs in the database. Warning: this method traverses the entire database so it can possibly take a long time to complete.

`values`(txn=None)

  Return a list of all data values in the database. Warning: this method traverses the entire database so it can possibly take a long time to complete.

`has_key`(key, txn=None)

  Returns true if key is present in the database.