class BDB::Common
Implement common methods for access to data
Public Class Methods
Source
# File common.rb, line 118 def create(name = nil, subname = nil, flags = 0, mode = 0, options = {}) end
same than open
Source
# File common.rb, line 135 def db_remove(name, subname = nil) end
same than remove
Source
# File common.rb, line 122 def new(name = nil, subname = nil, flags = 0, mode = 0, options = {}) end
same than open
Source
# File common.rb, line 114 def open(name = nil, subname = nil, flags = 0, mode = 0, options = {}) end
open the database
-
name The argument name is used as the name of a single physical file on disk that will be used to back the database.
-
subname The subname argument allows applications to have subdatabases, i.e., multiple databases inside of a single physical file. This is useful when the logical databases are both numerous and reasonably small, in order to avoid creating a large number of underlying files. It is an error to attempt to open a subdatabase in a database file that was not initially created using a subdatabase name.
-
flags The flags must be the string “r”, “r+”, “w”, “w+”, “a”, “a+” or and integer value.
The flags value must be set to 0 or by bitwise inclusively OR’ing together one or more of the following values
-
BDB::CREATE Create any underlying files, as necessary. If the files do not already exist and the DB_CREATE flag is not specified, the call will fail.
-
BD::EXCL Return an error if the database already exists. Underlying filesystem primitives are used to implement this flag. For this reason it is only applicable to the physical database file and cannot be used to test if a subdatabase already exists.
-
BDB::NOMMAP Do not map this database into process memory.
-
BDB::RDONLY Open the database for reading only. Any attempt to modify items in the database will fail regardless of the actual permissions of any underlying files.
-
BDB::TRUNCATE Physically truncate the underlying database file, discarding all previous subdatabases or databases. Underlying filesystem primitives are used to implement this flag. For this reason it is only applicable to the physical database file and cannot be used to discard subdatabases.
The DB_TRUNCATE flag cannot be transaction protected, and it is an error to specify it in a transaction protected environment.
-
-
options Hash, Possible options are (see the documentation of Berkeley DB for more informations)
-
store_nil_as_null: if ‘true’ will store ‘nil’ as ‘000’, otherwise as an empty string (default ‘false’)
-
set_array_base: base index for
BDB::Recno
,BDB::Queue
orBDB::Btree
(with BDB::RECNUM). Must be 0 or 1 -
set_bt_compare : specify a Btree comparison function
-
set_bt_minkey : set the minimum number of keys per Btree page
-
set_bt_prefix : specify a Btree prefix comparison function
-
set_cachesize : set the database cache size
-
set_dup_compare : specify a duplicate comparison function
-
set_store_key : specify a Proc called before a key is stored
-
set_fetch_key : specify a Proc called after a key is read
-
set_store_value : specify a Proc called before a value is stored
-
set_fetch_value : specify a Proc called after a value is read
-
set_flags : general database configuration
-
set_h_ffactor : set the Hash table density
-
set_h_hash : specify a hashing function
-
set_h_nelem : set the Hash table size
-
set_lorder : set the database byte order
-
set_pagesize : set the underlying database page size
-
set_re_delim : set the variable-length record delimiter
-
set_re_len : set the fixed-length record length
-
set_re_pad : set the fixed-length record pad byte
-
set_re_source : set the backing Recno text file
-
set_append_recno : modify the stored data for BDB::APPEND
-
set_encrypt : set the password used
-
set_feedback : set the function to monitor some operations
-
env : open the database in the environnement given as the value
-
txn : open the database in the transaction given as the value
set_append_recno will be called with (key, value) and it must return nil or the modified value
set_encrypt take an Array as arguments with the values [password, flags], where flags can be 0 or BDB::ENCRYPT_AES
Proc given to set_bt_compare, set_bt_prefix, set_dup_compare, set_h_hash, set_store_key set_fetch_key, set_store_value, set_fetch_value set_feedback and set_append_recno can be also specified as a method (replace the prefix set_ with bdb_)
For example module BDB class Btreesort < Btree def bdb_bt_compare(a, b) b.downcase <=> a.downcase end end end
-
Source
# File common.rb, line 131 def remove(name, subname = nil) end
Removes the database (or subdatabase) represented by the name and subname combination.
If no subdatabase is specified, the physical file represented by name is removed, incidentally removing all subdatabases that it contained.
Source
# File common.rb, line 139 def unlink(name, subname = nil) end
same than remove
Public Instance Methods
Source
# File common.rb, line 245 def []=(key, value) end
Stores the value associating with key
If nil is given as the value, the association from the key will be removed.
Source
# File common.rb, line 270 def append(key, value) end
Append the value associating with key
Source
# File common.rb, line 164 def associate(db, flag = 0) yield db, key, value end
associate a secondary index db
flag can have the value BDB::RDONLY
The block must return the new key, or Qfalse in this case the secondary index will not contain any reference to key/value
Source
# File common.rb, line 279 def byteswapped? end
Return if the underlying database is in host order
Source
# File common.rb, line 170 def cache_priority end
return the current priority value
Source
# File common.rb, line 177 def cache_priority=value end
set the priority value : can be BDB::PRIORITY_VERY_LOW, BDB::PRIORITY_LOW, BDB::PRIORITY_DEFAULT, BDB::PRIORITY_HIGH or BDB::PRIORITY_VERY_HIGH
Source
# File common.rb, line 325 def compact(start = nil, stop = nil, options = nil) end
Only for Btree and Recno (DB VERSION >= 4.4)
-
start starting point for compaction in a Btree or Recno database. Compaction will start at the smallest key greater than or equal to the specified key.
-
stop the stopping point for compaction in a Btree or Recno database. Compaction will stop at the page with the smallest key greater than the specified key
-
options hash with the possible keys
-
flags with the value 0, BDB::FREELIST_ONLY, or BDB::FREE_SPACE
-
compact_fillpercentthe goal for filling pages, specified as a percentage between 1 and 100.
-
compact_timeout the lock timeout set for implicit transactions, in microseconds.
-
Source
# File common.rb, line 330 def count(key) end
Return the count of duplicate for key
Source
# File common.rb, line 186 def create_sequence(key, init = nil, options = {}) yield sequence end
create a new sequence (see also open_sequence)
equivalent to open_sequence(key, BDB::CREATE|BDB::EXCL, init, options)
return (or yield) an object BDB::Sequence
Source
# File common.rb, line 348 def cursor_write() end
Open a new cursor with the flag BDB::WRITECURSOR
Source
# File common.rb, line 274 def db_append(key, value) end
same than append
Source
# File common.rb, line 343 def db_cursor(flags = 0) end
same than cursor
Source
# File common.rb, line 352 def db_cursor_write(flags = 0) end
same than cursor_write
Source
# File common.rb, line 225 def db_get(key, flags = 0) end
same than get
Source
# File common.rb, line 261 def db_put(key, value, flags = 0) end
same than put
Source
# File common.rb, line 369 def delete(key) end
Removes the association from the key.
It return the object deleted or nil if the specified key don’t exist.
Source
# File common.rb, line 380 def delete_if(set = nil) yield key, value end
Deletes associations if the evaluation of the block returns true.
set
Source
# File common.rb, line 393 def duplicates(key , assoc = true) end
Return an array of all duplicate associations for key
if assoc is false return only the values.
Source
# File common.rb, line 400 def each(set = nil, bulk = 0, "flags" => 0) yield key, value end
Iterates over associations.
set bulk
Source
# File common.rb, line 411 def each_by_prefix(prefix = nil) yield key, value end
iterate over associations, where the key begin with prefix
Source
# File common.rb, line 419 def each_dup(key, bulk = 0) yield key, value end
Iterates over each duplicate associations for key
bulk
Source
# File common.rb, line 427 def each_dup_value(key, bulk = 0) yield value end
Iterates over each duplicate values for key
bulk
Source
# File common.rb, line 435 def each_key(set = nil, bulk = 0) yield key end
Iterates over keys.
set bulk
Source
# File common.rb, line 405 def each_pair(set = nil, bulk = 0) yield key, value end
same than each
Source
# File common.rb, line 442 def each_primary(set = nil) yield skey, pkey, pvalue end
Iterates over secondary indexes and give secondary key, primary key and value
Source
# File common.rb, line 450 def each_value(set = nil, bulk = 0) yield value end
Iterates over values.
set bulk
Source
# File common.rb, line 210 def feedback=(proc) end
monitor the progress of some operations
Source
# File common.rb, line 229 def fetch(key, flags = 0) end
same than get
Source
# File common.rb, line 221 def get(key, flags = 0) end
Returns the value correspondind the key
flags can have the values BDB::GET_BOTH, BDB::SET_RECNO or BDB::RMW
In presence of duplicates it will return the first data item, use
duplicates if you want all duplicates (see also #each_dup)
Source
# File common.rb, line 483 def has_both?(key, value) end
Returns true if the association from key is value
Source
# File common.rb, line 466 def has_key?(key) end
Returns true if the association from the key exists.
Source
# File common.rb, line 492 def has_value?(value) end
Returns true if the association to the value exists.
Source
# File common.rb, line 501 def index(value) end
Returns the first key associated with value
Source
# File common.rb, line 506 def indexes(value1, value2, ) end
Returns the keys associated with value1, value2, …
Source
# File common.rb, line 511 def join(cursor , flag = 0) yield key, value end
Perform a join. cursor is an array of BDB::Cursor
Source
# File common.rb, line 517 def keys end
Returns the array of the keys in the database
Source
# File common.rb, line 522 def length end
Returns the number of association in the database.
Source
# File common.rb, line 532 def log_register(name) end
The log_register function registers a file name.
Source
# File common.rb, line 538 def log_unregister() end
The log_unregister function unregisters a file name.
Source
# File common.rb, line 203 def open_sequence(key, flags = 0, init = nil, options = {}) yield sequence end
create or open a sequence (see BDB::Sequence
)
key : key for the sequence
flags : flags can have BDB::CREATE, BDB::EXCL, BDB::AUTO_COMMIT, BDB::THREAD
init : initial value for the sequence
options : hash with the possible keys “set_cachesize”, “set_flags” and “set_range”
return (or yield) an object BDB::Sequence
Source
# File common.rb, line 237 def pget(key, flags = 0) end
Returns the primary key and the value corresponding to key in the secondary index
only with >= 3.3.11
Source
# File common.rb, line 257 def put(key, value, flags = 0) end
Stores the value associating with key
If nil is given as the value, the association from the key will be removed. It return the object deleted or nil if the specified key don’t exist.
flags can have the value DBD::NOOVERWRITE, in this case it will return nil if the specified key exist, otherwise true
Source
# File common.rb, line 544 def reject yield key, value end
Create an hash without the associations if the evaluation of the block returns true.
Source
# File common.rb, line 385 def reject!(set = nil) yield key, value end
same than delete_if
Source
# File common.rb, line 552 def reverse_each(set = nil) yield key, value end
Iterates over associations in reverse order
set
Source
# File common.rb, line 563 def reverse_each_by_prefix(prefix = nil) yield key, value end
iterate over associations in reverse order, where the key begin with prefix
Source
# File common.rb, line 571 def reverse_each_key(set = nil) yield key end
Iterates over keys in reverse order
set
Source
# File common.rb, line 557 def reverse_each_pair(set = nil) yield key, value end
same than reverse_each
Source
# File common.rb, line 578 def reverse_each_primary(set = nil) yield skey, pkey, pvalue end
Iterates over secondary indexes in reverse order and give secondary key, primary key and value
Source
# File common.rb, line 586 def reverse_each_value(set = nil) yield value end
Iterates over values in reverse order.
set
Source
# File common.rb, line 592 def set_partial(len, offset) end
Set the partial value len and offset
Source
# File common.rb, line 265 def store(key, value, flags = 0) end
same than put
Source
# File common.rb, line 602 def to_a end
Return an array of all associations [key, value]
Source
# File common.rb, line 607 def to_hash end
Return an hash of all associations {key => value}
Source
# File common.rb, line 620 def values end
Returns the array of the values in the database.
Source
# File common.rb, line 626 def verify(file = nil, flags = 0) end
Verify the integrity of the DB file, and optionnally output the key/data to file (file must respond to to_io)