Daylight v4.9
Release Date: 1 February 2008


dt_thor_createdb - create a new THOR database

Generic Prototype

dt_thor_createdb(dt_Handle, dt_String, dt_Integer, dt_Integer) => dt_Handle

C Prototype

#include "dt_thor.h"

dt_Handle dt_thor_createdb(dt_Handle server, dt_Integer dlen, dt_String dbname, dt_Integer sizepri, dt_Integer sizexref)

FORTRAN Prototype

include ''

integer*4 dt_f_thor_createdb(server, dbname, sizepri, sizexref)

integer*4 server
character*() dbname
integer*4 sizepri
integer*4 sizexref


Creates a new, empty THOR database and opens it with "executive" permission.

The string 'dbname' is the path of the database on the server. The database name must contain a complete path; partial and relative pathnames are not allowed. It is suggested that 'dbname' contain an environment variable, such as $DY_THORDB. The server will expand the environment variable to verify that 'dbname' represents a complete path. The environment variable will be stored in the database's header file. This makes it much easier to move databases, should the need arise.

The database initially has no passwords, so dt_setpassword(3) should be used.

The parameters 'sizepri' and 'sizexref' are the requested sizes of the primary and cross-reference hash tables. The size of the primary hash table should be roughly equal to the number of TDTs that are to be stored in the database. The size of the cross-reference hash table should be roughly equal to the number of non-SMILES identifiers that are part of SMILES-rooted TDTs to be stored in the database.

For datatype or indirect-data databases (which have no cross-reference), the value of 'sizexref' should be '1', the smallest allowed value.

Note that the size of the hash tables depends on the number of TDTs and identifiers, not on the size of each TDT. Also note that each hash-table entry takes only 8 bytes of disk space. It is usually better to overestimate hash table size rather than underestimate. Badly undersized hash tables can cause significant loss of performance.

Return Value

Returns a handle for the newly-created database, or the NULL_OB if an error is encountered.

Related Topics

dt_hold(3) dt_release(3) dt_getpasswords(3) dt_setpassword(3) dt_thor_autocrunch_limit(3) dt_thor_cache(3) dt_thor_cachecontrol(3) dt_thor_cachesync(3) dt_thor_crunchdata(3) dt_thor_crunchxref(3) dt_thor_destroy(3) dt_thor_getauxillarydb(3) dt_thor_setauxillarydb(3)