| DB5.3_CODEGEN(1) | General Commands Manual | DB5.3_CODEGEN(1) |
db5.3_codegen —
generate application code for Berkeley DB
db5.3_codegen |
[-Vv] [-a
api] [-i
file] [-o
prefix] |
The db5.3_codegen utility generates
application code to create and configure Berkeley DB database environments
and databases based on a simple description language and writes it to one or
more output files. The generated code may need modification, in the case of
complicated applications, but will usually significantly reduce the time
required to create Berkeley DB applications.
The options are as follows:
-a
api-i
file-o
prefix-V-vThe db5.3_codegen utility exits 0 on
success, and >0 if an error occurs.
By default, when the db5.3_codegen utility
generates C-language code, the output file is named
“application.c”. The output filename
can be specified with the -o option.
At the beginning of the output file is a list of public database environment (DB_ENV) handles and database (DB) handles, as specified by the description language. The database environment handle variables are named “XXX_dbenv”, where “XXX” is the name of the environment in the input specification. For databases associated with a database environment, the database handle variables are named “XXX_YYY”, where “XXX” is the name of the environment, and “YYY” is the name of the database. For standalone databases, the database handle variables are named “XXX”, where “XXX” is the name of the database.
There are two public functions in the output
file:
bdb_startup()
and
bdb_shutdown().
The bdb_startup() function should be called to
create and configure the database environments and databases, and the
bdb_shutdown() function should be called to
gracefully shut down the environments and databases.
The db5.3_codegen uses a simple
description language:
There are two top-level objects: “environment” and “database”, which correspond to database environments and databases, respectively. These top-level objects can be associated with keywords to describe their configuration and relationships.
For example, the following input would create two standalone databases:
database data_one {
type btree
}
database data_two {
type btree
}
In this case, there would be no DB_ENV handle, and the public DB handles would be:
DB *data_one; DB *data_two;
For example, the following input would create a database environment which contains three databases:
environment myenv {
database data_one {
type btree
}
database data_two {
type btree
}
database data_three {
type btree
}
}
In this case, the public DB_ENV and DB handles would be:
DB_ENV *myenv_dbenv; DB *myenv_data_one; DB *myenv_data_two; DB *myenv_data_three;
A variety of keywords can be specified for the databases and the environments. For example, the cache size can be specified for the database environment, and the page size can be specified for the database, as well as for secondary relationships:
environment myenv {
cachesize 2 0 10
database data_one {
type btree
pagesize 1024
}
database data_two {
primary data_one
secondary_offset 10 15
type btree
pagesize 32768
}
database data_three {
type btree
pagesize 512
}
}
environmentThere must be three tokens on the line: the keyword, the name of the environment and an opening brace (“{”).
homeThere must be two tokens on the line: the keyword and the home directory.
cachesizeThere must be two tokens on the line: the keyword, the gigabytes of cache, the bytes of cache, and the number of caches (the number of underlying physical areas into which the cache is logically divided).
privateThere must be one token on the line: the keyword by itself.
}There must be one token on the line: the keyword by itself.
databaseThere must be three tokens on the line: the keyword, the name of the database and an opening brace (“{”).
customdb5.3_codegen cannot generate. A stub key
comparison routine will be created and configured for the database which
should be modified as necessary. See the
“key_type” keyword for more
information.
There must be one token on the line: the keyword by itself.
dupsortThere must be one token on the line: the keyword by itself.
extentsizeThere must be two tokens on the line: the keyword and the extent file size, as a number of pages.
key_typecustom” keyword for more
information. A Btree comparison routine based on the type of the key will
be created and configured.
There must be two tokens on the line: the keyword and the type.
pagesizeThere must be two tokens on the line: the keyword and the page size in bytes.
primarysecondary_offset” keyword for more
information.
There must be two tokens on the line: the keyword and the name of the primary database for which this database is a secondary.
recnumThere must be one token on the line: the keyword by itself.
re_lenThere must be two tokens on the line: the keyword and the length of a record, in bytes.
secondary_offsetThere must be three tokens on the line: the keyword, the byte offset from the beginning of the primary data item where the secondary key occurs, and the length of the secondary key in bytes.
transactionThere must be one token on the line: the keyword by itself.
typeThere must be two tokens on the line: the keyword and the type, where the type is one of “btree”, “hash”, “queue” or “recno”.
}There must be one token on the line: the keyword by itself.
Thorsten Glaser ⟨tg@debian.org⟩ wrote this manual page for the Debian project (but may be used by others) after the original HTML format documentation Copyright © 1996,2008 Oracle. All rights reserved.
| January 12, 2011 | Berkeley DB |