db get

APIRef

db get
	[-glob]
	[-partial {doff dlen}]
	[-recno]
	[-rmw]
	[-txn txnid]
	key
db get
	-get_both
	[-partial {doff dlen}]
	[-rmw]
	[-txn txnid]
	key data

Description

The db get command returns key/data pairs from the database.

In the presence of duplicate key values, db get will return all duplicate items. Duplicates are sorted by insert order except where this order has been overridden by cursor operations.

The options are as follows:

-get_both key data
Retrieve the key/data pair only if both the key and data match the arguments.

-glob
Return all keys matching the given key, where the key is a simple wildcard pattern. Where it is used, it replaces the use of the key with the given pattern of a set of keys. Any characters after the wildcard character are ignored. For example, in a database of last names, the command "db0 get Jones" will return all of the "Jones" in the database, and the command "db0 get -glob Jo*" will return both "Jones" and "Johnson" from the database. The command "db0 get -glob *" will return all of the key/data pairs in the database.

-partial {doff dlen}
The dlen bytes starting doff bytes from the beginning of the retrieved data record are returned as if they comprised the entire record. If any or all of the specified bytes do not exist in the record, the command is successful and the existing bytes or 0 bytes are returned.

-recno
Retrieve the specified numbered key/data pair from a database. For -recno to be specified, the specified key must be a record number and the underlying database must be of type Recno or Queue, or of type Btree that was created with the -recnum option.

-rmw
Acquire write locks instead of read locks when doing the retrieval. Setting this flag may decrease the likelihood of deadlock during a read-modify-write cycle by immediately acquiring the write lock during the read part of the cycle so that another thread of control acquiring a read lock for the same item, in its own read-modify-write cycle, will not result in deadlock.

As the db get command will not hold locks across Berkeley DB interface calls in non-transactional environments, the -rmw argument to the db get call is only meaningful in the presence of transactions.

-txn txnid
If the file is being accessed under transaction protection, the txnid parameter is a transaction handle returned from env txn.

A list of key/data pairs is returned. In the error case that no matching key exists, an empty list is returned. In all other cases, a Tcl error is thrown.

APIRef

Copyright Sleepycat Software