head 1.2; access; symbols RPM_4_2_1:1.1.1.5 RPM_4_2:1.1.1.5 RPM_4_1_1:1.1.1.5 RPM_4_1:1.1.1.4 RPM_4_0_5:1.1.1.3 RPM_4_0_4:1.1.1.2 RPM_4_0_3:1.1.1.1 RPM:1.1.1; locks; strict; comment @# @; 1.2 date 2008.01.02.09.53.55; author rse; state dead; branches; next 1.1; commitid z4cpSiAhOCXk5PLs; 1.1 date 2001.07.23.20.45.36; author rse; state Exp; branches 1.1.1.1; next ; 1.1.1.1 date 2001.07.23.20.45.36; author rse; state Exp; branches; next 1.1.1.2; 1.1.1.2 date 2002.01.08.00.30.10; author rse; state Exp; branches; next 1.1.1.3; 1.1.1.3 date 2003.01.18.13.49.00; author rse; state Exp; branches; next 1.1.1.4; 1.1.1.4 date 2001.12.06.00.08.08; author rse; state Exp; branches; next 1.1.1.5; 1.1.1.5 date 2003.01.18.14.04.58; author rse; state Exp; branches; next ; desc @@ 1.2 log @remove the ancient RPM 4.2.1 source tree copy @ text @ Berkeley DB: Db.set_flags

Db.set_flags

APIRef

import com.sleepycat.db.*;

public void set_flags(int flags) throws DbException;

Description

Calling Db.set_flags is additive; there is no way to clear flags.

The flags value must be set to 0 or by bitwise inclusively OR'ing together one or more of the following values:

Btree

The following flags may be specified for the Btree access method:

Db.DB_DUP
Permit duplicate data items in the tree; that is, insertion when the key of the key/data pair being inserted already exists in the tree will be successful. The ordering of duplicates in the tree is determined by the order of insertion, unless the ordering is otherwise specified by use of a cursor operation. It is an error to specify both Db.DB_DUP and Db.DB_RECNUM.

Db.DB_DUPSORT
Permit duplicate data items in the tree; that is, insertion when the key of the key/data pair being inserted already exists in the tree will be successful. The ordering of duplicates in the tree is determined by the duplicate comparison function. A default lexical comparison will be used. It is an error to specify both Db.DB_DUPSORT and Db.DB_RECNUM.

Db.DB_RECNUM
Support retrieval from the Btree using record numbers. For more information, see the DB_GET_RECNO flag to the Db.get and Dbc.get methods.

Logical record numbers in Btree databases are mutable in the face of record insertion or deletion. See the DB_RENUMBER flag in the Recno access method information for further discussion.

Maintaining record counts within a Btree introduces a serious point of contention, namely the page locations where the record counts are stored. In addition, the entire tree must be locked during both insertions and deletions, effectively single-threading the tree for those operations. Specifying DB_RECNUM can result in serious performance degradation for some applications and data sets.

It is an error to specify both DB_DUP and DB_RECNUM.

Db.DB_REVSPLITOFF
Turn off reverse splitting in the Btree. As pages are emptied in a database, the Berkeley DB Btree implementation attempts to coalesce empty pages into higher-level pages in order to keep the tree as small as possible and minimize tree search time. This can hurt performance in applications with cyclical data demands; that is, applications where the database grows and shrinks repeatedly. For example, because Berkeley DB does page-level locking, the maximum level of concurrency in a database of two pages is far smaller than that in a database of 100 pages, so a database that has shrunk to a minimal size can cause severe deadlocking when a new cycle of data insertion begins.

Hash

The following flags may be specified for the Hash access method:

Db.DB_DUP
Permit duplicate data items in the tree; that is, insertion when the key of the key/data pair being inserted already exists in the tree will be successful. The ordering of duplicates in the tree is determined by the order of insertion, unless the ordering is otherwise specified by use of a cursor operation. It is an error to specify both Db.DB_DUP and Db.DB_RECNUM.

Db.DB_DUPSORT
Permit duplicate data items in the tree; that is, insertion when the key of the key/data pair being inserted already exists in the tree will be successful. The ordering of duplicates in the tree is determined by the duplicate comparison function. A default lexical comparison will be used. It is an error to specify both Db.DB_DUPSORT and Db.DB_RECNUM.

Queue

There are no additional flags that may be specified for the Queue access method.

Recno

The following flags may be specified for the Recno access method:

Db.DB_RENUMBER
Specifying the DB_RENUMBER flag causes the logical record numbers to be mutable, and change as records are added to and deleted from the database. For example, the deletion of record number 4 causes records numbered 5 and greater to be renumbered downward by one. If a cursor was positioned to record number 4 before the deletion, it will refer to the new record number 4, if any such record exists, after the deletion. If a cursor was positioned after record number 4 before the deletion, it will be shifted downward one logical record, continuing to refer to the same record as it did before.

Using the Db.put or Dbc.put interfaces to create new records will cause the creation of multiple records if the record number is more than one greater than the largest record currently in the database. For example, creating record 28, when record 25 was previously the last record in the database, will create records 26 and 27 as well as 28. Attempts to retrieve records that were created in this manner will result in an error return of Db.DB_KEYEMPTY.

If a created record is not at the end of the database, all records following the new record will be automatically renumbered upward by one. For example, the creation of a new record numbered 8 causes records numbered 8 and greater to be renumbered upward by one. If a cursor was positioned to record number 8 or greater before the insertion, it will be shifted upward one logical record, continuing to refer to the same record as it did before.

For these reasons, concurrent access to a Recno database with the Db.DB_RENUMBER flag specified may be largely meaningless, although it is supported.

Db.DB_SNAPSHOT
This flag specifies that any specified re_source file be read in its entirety when Db.open is called. If this flag is not specified, the re_source file may be read lazily.

The Db.set_flags interface may be used only to configure Berkeley DB before the Db.open interface is called.

The Db.set_flags method throws an exception that encapsulates a non-zero error value on failure.

Errors

The Db.set_flags method may fail and throw an exception encapsulating a non-zero error for the following conditions:

EINVAL
An invalid flag value or parameter was specified.

The Db.set_bt_compare method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods. If a catastrophic error has occurred, the Db.set_bt_compare method may fail and throw a DbRunRecoveryException, in which case all subsequent Berkeley DB calls will fail in the same way.

Class

Db

See Also

Db.associate, Db.close, Db.cursor, Db.del, Db.fd, Db.get, Db.pget, Db.get_byteswapped, Db.get_type, Db.join, Db.key_range, Db.open, Db.put, Db.remove, Db.rename, Db.set_append_recno, Db.set_bt_minkey, Db.set_cachesize, Db.set_errcall, Db.set_errpfx, Db.set_feedback, Db.set_flags, Db.set_h_ffactor, Db.set_h_nelem, Db.set_lorder, Db.set_pagesize, Db.set_q_extentsize, Db.set_re_delim, Db.set_re_len, Db.set_re_pad, Db.set_re_source, Db.stat, Db.sync, Db.truncate, Db.upgrade, and Db.verify.

APIRef

Copyright Sleepycat Software @ 1.1 log @Initial revision @ text @d1 1 a1 1 @ 1.1.1.1 log @Import: RPM 4.0.3 @ text @@ 1.1.1.2 log @Import: RPM 4.0.4 @ text @d1 1 a1 1 d17 1 a17 1 APIRef d25 1 a25 1 throws DbException; d183 1 a183 1 APIRef @ 1.1.1.3 log @Import: RPM 4.0.5 @ text @d1 2 a2 2 a3 1 a30 29

General

The following flags may be specified for any Berkeley DB access method:

Db.DB_CHKSUM_SHA1
Do checksum verification of pages read into the cache from the backing filestore, using the SHA1 Secure Hash Algorithm.

Calling Db.set_flags with the Db.DB_CHKSUM_SHA1 flag only affects the specified Db handle (and any other Berkeley DB handles opened within the scope of that handle).

If the database already exists when Db.open is called, the DB_CHKSUM_SHA1 flag will be ignored. If creating additional databases in a file, the checksum behavior specified must be consistent with the existing databases in the file or an error will be returned.

Db.DB_ENCRYPT
Encrypt the database using the cryptographic password specified to the DbEnv.set_encrypt or Db.set_encrypt methods.

Calling Db.set_flags with the Db.DB_ENCRYPT flag only affects the specified Db handle (and any other Berkeley DB handles opened within the scope of that handle).

If the database already exists when Db.open is called, the DB_ENCRYPT flag must be the same as the existing database or an error will be returned. If creating additional databases in a file, the encryption behavior specified must be consistent with the existing databases in the file or an error will be returned.

d34 1 a34 1 d39 3 a41 9 use of a cursor operation. It is an error to specify both Db.DB_DUP and Db.DB_RECNUM.

Calling Db.set_flags with the Db.DB_DUP flag affects the database, including all threads of control accessing the database.

If the database already exists when Db.open is called, the DB_DUP flag must be the same as the existing database or an error will be returned. d48 1 a48 7

Calling Db.set_flags with the Db.DB_DUPSORT flag affects the database, including all threads of control accessing the database.

If the database already exists when Db.open is called, the DB_DUPSORT flag must be the same as the existing database or an error will be returned. d50 2 a51 2 information, see the Db.DB_SET_RECNO flag to the Db.get and Dbc.get methods. d53 2 a54 2 record insertion or deletion. See the Db.DB_RENUMBER flag in the Recno access method information for further discussion. d56 7 a62 13 contention, namely the page locations where the record counts are stored. In addition, the entire tree must be locked during both insertions and deletions, effectively single-threading the tree for those operations. Specifying Db.DB_RECNUM can result in serious performance degradation for some applications and data sets.

It is an error to specify both Db.DB_DUP and Db.DB_RECNUM.

Calling Db.set_flags with the Db.DB_RECNUM flag affects the database, including all threads of control accessing the database.

If the database already exists when Db.open is called, the DB_RECNUM flag must be the same as the existing database or an error will be returned. a72 3

Calling Db.set_flags with the Db.DB_REVSPLITOFF flag only affects the specified Db handle (and any other Berkeley DB handles opened within the scope of that handle). d81 2 a82 8 use of a cursor operation. It is an error to specify both Db.DB_DUP and Db.DB_RECNUM.

Calling Db.set_flags with the Db.DB_DUP flag affects the database, including all threads of control accessing the database.

If the database already exists when Db.open is called, the DB_DUP flag must be the same as the existing database or an error will be returned. a88 6

Calling Db.set_flags with the Db.DB_DUPSORT flag affects the database, including all threads of control accessing the database.

If the database already exists when Db.open is called, the DB_DUPSORT flag must be the same as the existing database or an error will be returned. d96 10 a105 10

Db.DB_RENUMBER
Specifying the Db.DB_RENUMBER flag causes the logical record numbers to be mutable, and change as records are added to and deleted from the database. For example, the deletion of record number 4 causes records numbered 5 and greater to be renumbered downward by one. If a cursor was positioned to record number 4 before the deletion, it will refer to the new record number 4, if any such record exists, after the deletion. If a cursor was positioned after record number 4 before the deletion, it will be shifted downward one logical record, continuing to refer to the same record as it did before. d123 3 a125 9

Calling Db.set_flags with the Db.DB_RENUMBER flag affects the database, including all threads of control accessing the database.

If the database already exists when Db.open is called, the DB_RENUMBER flag must be the same as the existing database or an error will be returned.

Db.DB_SNAPSHOT
This flag specifies that any specified re_source file be read in its entirety when Db.open is called. If this flag is not a126 3

Calling Db.set_flags with the Db.DB_SNAPSHOT flag only affects the specified Db handle (and any other Berkeley DB handles opened within the scope of that handle). d128 2 a129 2

The Db.set_flags interface may not be called after the Db.open interface is called. d138 3 a140 3 If a catastrophic error has occurred, the Db.set_bt_compare method may fail and throw a DbRunRecoveryException, in which case all subsequent Berkeley DB calls will fail in the same way. d144 37 a180 1 Databases and Related Methods @ 1.1.1.4 log @Import: RPM 4.1 @ text @d1 2 a2 2 d4 1 d32 29 d64 1 a64 1 d69 9 a77 3 use of a cursor operation. It is an error to specify both Db.DB_DUP and Db.DB_RECNUM. d84 7 a90 1 d92 2 a93 2 information, see the DB_GET_RECNO flag to the Db.get and Dbc.get methods. d95 2 a96 2 record insertion or deletion. See the DB_RENUMBER flag in the Recno access method information for further discussion. d98 13 a110 7 contention, namely the page locations where the record counts are stored. In addition, the entire tree must be locked during both insertions and deletions, effectively single-threading the tree for those operations. Specifying DB_RECNUM can result in serious performance degradation for some applications and data sets.

It is an error to specify both DB_DUP and DB_RECNUM. d121 3 d132 8 a139 2 use of a cursor operation. It is an error to specify both Db.DB_DUP and Db.DB_RECNUM. d146 6 d159 10 a168 10

Db.DB_RENUMBER
Specifying the DB_RENUMBER flag causes the logical record numbers to be mutable, and change as records are added to and deleted from the database. For example, the deletion of record number 4 causes records numbered 5 and greater to be renumbered downward by one. If a cursor was positioned to record number 4 before the deletion, it will refer to the new record number 4, if any such record exists, after the deletion. If a cursor was positioned after record number 4 before the deletion, it will be shifted downward one logical record, continuing to refer to the same record as it did before. d186 9 a194 3

Db.DB_SNAPSHOT
This flag specifies that any specified re_source file be read in its entirety when Db.open is called. If this flag is not d196 3 d200 2 a201 2

The Db.set_flags interface may be used only to configure Berkeley DB before the Db.open interface is called. d210 3 a212 3 If a catastrophic error has occurred, the Db.set_bt_compare method may fail and throw a DbRunRecoveryException, in which case all subsequent Berkeley DB calls will fail in the same way. d216 1 a216 37 Db.associate, Db.close, Db.cursor, Db.del, Db.fd, Db.get, Db.pget, Db.get_byteswapped, Db.get_type, Db.join, Db.key_range, Db.open, Db.put, Db.remove, Db.rename, Db.set_append_recno, Db.set_bt_minkey, Db.set_cachesize, Db.set_errcall, Db.set_errpfx, Db.set_feedback, Db.set_flags, Db.set_h_ffactor, Db.set_h_nelem, Db.set_lorder, Db.set_pagesize, Db.set_q_extentsize, Db.set_re_delim, Db.set_re_len, Db.set_re_pad, Db.set_re_source, Db.stat, Db.sync, Db.truncate, Db.upgrade, and Db.verify. @ 1.1.1.5 log @Import: RPM 4.1.1 @ text @d1 2 a2 2 a3 1 a30 29

General

The following flags may be specified for any Berkeley DB access method:

Db.DB_CHKSUM_SHA1
Do checksum verification of pages read into the cache from the backing filestore, using the SHA1 Secure Hash Algorithm.

Calling Db.set_flags with the Db.DB_CHKSUM_SHA1 flag only affects the specified Db handle (and any other Berkeley DB handles opened within the scope of that handle).

If the database already exists when Db.open is called, the DB_CHKSUM_SHA1 flag will be ignored. If creating additional databases in a file, the checksum behavior specified must be consistent with the existing databases in the file or an error will be returned.

Db.DB_ENCRYPT
Encrypt the database using the cryptographic password specified to the DbEnv.set_encrypt or Db.set_encrypt methods.

Calling Db.set_flags with the Db.DB_ENCRYPT flag only affects the specified Db handle (and any other Berkeley DB handles opened within the scope of that handle).

If the database already exists when Db.open is called, the DB_ENCRYPT flag must be the same as the existing database or an error will be returned. If creating additional databases in a file, the encryption behavior specified must be consistent with the existing databases in the file or an error will be returned.

d34 1 a34 1 d39 3 a41 9 use of a cursor operation. It is an error to specify both Db.DB_DUP and Db.DB_RECNUM.

Calling Db.set_flags with the Db.DB_DUP flag affects the database, including all threads of control accessing the database.

If the database already exists when Db.open is called, the DB_DUP flag must be the same as the existing database or an error will be returned. d48 1 a48 7

Calling Db.set_flags with the Db.DB_DUPSORT flag affects the database, including all threads of control accessing the database.

If the database already exists when Db.open is called, the DB_DUPSORT flag must be the same as the existing database or an error will be returned. d50 2 a51 2 information, see the Db.DB_SET_RECNO flag to the Db.get and Dbc.get methods. d53 2 a54 2 record insertion or deletion. See the Db.DB_RENUMBER flag in the Recno access method information for further discussion. d56 7 a62 13 contention, namely the page locations where the record counts are stored. In addition, the entire tree must be locked during both insertions and deletions, effectively single-threading the tree for those operations. Specifying Db.DB_RECNUM can result in serious performance degradation for some applications and data sets.

It is an error to specify both Db.DB_DUP and Db.DB_RECNUM.

Calling Db.set_flags with the Db.DB_RECNUM flag affects the database, including all threads of control accessing the database.

If the database already exists when Db.open is called, the DB_RECNUM flag must be the same as the existing database or an error will be returned. a72 3

Calling Db.set_flags with the Db.DB_REVSPLITOFF flag only affects the specified Db handle (and any other Berkeley DB handles opened within the scope of that handle). d81 2 a82 8 use of a cursor operation. It is an error to specify both Db.DB_DUP and Db.DB_RECNUM.

Calling Db.set_flags with the Db.DB_DUP flag affects the database, including all threads of control accessing the database.

If the database already exists when Db.open is called, the DB_DUP flag must be the same as the existing database or an error will be returned. a88 6

Calling Db.set_flags with the Db.DB_DUPSORT flag affects the database, including all threads of control accessing the database.

If the database already exists when Db.open is called, the DB_DUPSORT flag must be the same as the existing database or an error will be returned. d96 10 a105 10

Db.DB_RENUMBER
Specifying the Db.DB_RENUMBER flag causes the logical record numbers to be mutable, and change as records are added to and deleted from the database. For example, the deletion of record number 4 causes records numbered 5 and greater to be renumbered downward by one. If a cursor was positioned to record number 4 before the deletion, it will refer to the new record number 4, if any such record exists, after the deletion. If a cursor was positioned after record number 4 before the deletion, it will be shifted downward one logical record, continuing to refer to the same record as it did before. d123 3 a125 9

Calling Db.set_flags with the Db.DB_RENUMBER flag affects the database, including all threads of control accessing the database.

If the database already exists when Db.open is called, the DB_RENUMBER flag must be the same as the existing database or an error will be returned.

Db.DB_SNAPSHOT
This flag specifies that any specified re_source file be read in its entirety when Db.open is called. If this flag is not a126 3

Calling Db.set_flags with the Db.DB_SNAPSHOT flag only affects the specified Db handle (and any other Berkeley DB handles opened within the scope of that handle). d128 2 a129 2

The Db.set_flags interface may not be called after the Db.open interface is called. d138 3 a140 3 If a catastrophic error has occurred, the Db.set_bt_compare method may fail and throw a DbRunRecoveryException, in which case all subsequent Berkeley DB calls will fail in the same way. d144 37 a180 1 Databases and Related Methods @