man > db5.3_codegen(1)

DB5.3_CODEGEN(1)                       General Commands Manual                      DB5.3_CODEGEN(1)

NAME
       db5.3_codegen — generate application code for Berkeley DB

SYNOPSIS
       db5.3_codegen [-Vv] [-a api] [-i file] [-o prefix]

DESCRIPTION
       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 compli‐
       cated applications, but will usually significantly reduce the time required to create  Berke‐
       ley DB applications.

       The options are as follows:

       -a api
            Generate code for the specified API (currently, only “c” is accepted).

       -i file
            Specify an input file; by default, standard input is used.

       -o prefix
            Specify an output file prefix; by default, “application” is used.

       -V   Write the library version number to standard output and exit.

       -v   Run in verbose mode.

       The db5.3_codegen utility exits 0 on success, and >0 if an error occurs.

C Language Specific Information
       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  environ‐
       ment  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 envi‐
       ronments and databases.

Specification Language
       The db5.3_codegen uses a simple description language:

       •   Lines in the input consist of white-space separated tokens.
       •   Tokens are case-insensitive.
       •   Empty lines and lines where the first non-space character is a hash mark  (“#”)  are  ig‐
           nored.   In  addition,  hash  marks may appear in lines, in which case the content of the
           line from the hash mark to the end of the line is ignored.

       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 speci‐
       fied 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
                 }
             }

   Environment Keywords
       environment       Start a database environment block.

                         There must be three tokens on the line: the keyword, the name of the  envi‐
                         ronment and an opening brace (“{”).

       home              Specify the database environment home directory.

                         There must be two tokens on the line: the keyword and the home directory.

       cachesize         Specify the database environment cache size.

                         There  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).

       private           Specify the database environment is private.

                         There must be one token on the line: the keyword by itself.

       }                 End the database environment block.

                         There must be one token on the line: the keyword by itself.

   Database Keywords
       database          Start a database block.

                         There  must be three tokens on the line: the keyword, the name of the data‐
                         base and an opening brace (“{”).

       custom            Specify a custom key-comparison routine.  This is used when the Btree data‐
                         base requires a specific sort that db5.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.

       dupsort           Configure the database to support sorted duplicates.

                         There must be one token on the line: the keyword by itself.

       extentsize        Configure the size of the Queue database extent files.

                         There must be two tokens on the line: the keyword and the extent file size,
                         as a number of pages.

       key_type          Configure a integral type key-comparison routine.  This is  used  when  the
                         Btree  database  key  is  an  integral  type  (such  as  “unsigned  int” or
                         “u_int32_t”).  Any C-language integral type  may  be  specified.   See  the
                         “custom” 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.

       pagesize          Configure the database page size.

                         There  must  be  two  tokens  on the line: the keyword and the page size in
                         bytes.

       primary           Configure the database as a secondary index.   A  stub  secondary  callback
                         routine  will  be  created and configured for the database, which should be
                         modified as necessary.  See the “secondary_offset” keyword for more  infor‐
                         mation.

                         There  must be two tokens on the line: the keyword and the name of the pri‐
                         mary database for which this database is a secondary.

       recnum            Configure the Btree database to support record number access.

                         There must be one token on the line: the keyword by itself.

       re_len            Configure the record length for a Queue database or  a  fixed-length  Recno
                         database.

                         There  must  be  two  tokens  on  the line: the keyword and the length of a
                         record, in bytes.

       secondary_offset  Configure a secondary callback routine based on a byte string found in  the
                         primary database's data item.

                         There  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.

       transaction       Configure the database (and, by extension, the database environment), to be
                         transactional.

                         There must be one token on the line: the keyword by itself.

       type              Configure the database type.

                         There  must  be two tokens on the line: the keyword and the type, where the
                         type is one of “btree”, “hash”, “queue” or “recno”.

       }                 End the database environment block.

                         There must be one token on the line: the keyword by itself.

AUTHORS
       Thorsten Glaser <tg AT 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.

Berkeley DB                               January 12, 2011                          DB5.3_CODEGEN(1)
db5.3_codegen(1) □✕
NAME SYNOPSIS DESCRIPTION
-a api -i file -o prefix -V Write the library version number to standard output and exit. -v Run in verbose mode.
Specification Language
Environment Keywords Database Keywords
AUTHORS

Generated by phpman v4.12.13 · Markdown · JSON Author: Che Dong Under GNU General Public License
2026-10-21 02:44 @216.73.217.130
CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0 Transitional!Valid CSS!

^_top_^