00001 //-< CONFIG.H >------------------------------------------------------*--------* 00002 // FastDB Version 1.0 (c) 1999 GARRET * ? * 00003 // (Post Relational Database Management System) * /\| * 00004 // * / \ * 00005 // Created: 21-Jan-2004 K.A. Knizhnik * / [] \ * 00006 // Last update: 21-Jan-2004 K.A. Knizhnik * GARRET * 00007 //-------------------------------------------------------------------*--------* 00008 // FastDB configuration definitions 00009 //-------------------------------------------------------------------*--------* 00010 00011 #ifndef __CONFIG_H__ 00012 #define __CONFIG_H__ 00013 00014 // USE_LOCALE_SETTINGS - use C locale for string comparison operations 00015 #define USE_LOCALE_SETTINGS 1 00016 00017 // FASTDB_DEBUG - debug level 00018 // - DEBUG_NONE - disable any checking and tracing (except asserts) 00019 // - DEBUG_CHECK - disable trace message 00020 // - DEBUG_TRACE_IMPORTANT - enable trace of important messages 00021 // - DEBUG_TRACE_ALL - enable trace of all messages 00022 #define FASTDB_DEBUG DEBUG_TRACE_IMPORTANT 00023 //#define FASTDB_DEBUG DEBUG_TRACE_ALL 00024 00025 // USE_NAMESPACES - place FastDB classes in separate namespace 00026 //#define USE_NAMESPACES 1 00027 00028 // SECURE_SERVER - enable authentication for remote logins: keep user/password table, 00029 // check password for remote logins 00030 //#define SECURE_SERVER 1 00031 00032 // USE_QUEUE_MANAGER - use queue manager for internal HTTP server. 00033 // This manager will manage pool of threads assigned for client connections. 00034 // Otherwise all requests will be executed sequnetially in the main loop. 00035 //#define USE_QUEUE_MANAGER 1 00036 00037 00038 // FASTDB_DLL - create fastdb.dll 00039 //#define FASTDB_DLL 1 00040 00041 00042 // THROW_EXCEPTION_ON_ERROR - throw C++ exception in case of database error instead of abort() 00043 #ifndef _WINCE 00044 #define THROW_EXCEPTION_ON_ERROR 1 00045 #endif 00046 00047 00048 //IGNORE_CASE - perform all string comparisons as case insensitive 00049 //#define IGNORE_CASE 1 00050 00051 //USE_STD_STRING - accept std::string class as table field type 00052 #ifdef _WIN32 00053 #define USE_STD_STRING 1 00054 #endif 00055 00056 //AUTOINCREMENT_SUPPORT - support autoincrement fields 00057 // (database built with this flag will be incompatible with database built without it) 00058 #define AUTOINCREMENT_SUPPORT 1 00059 00060 //CLONE_IDENTIFIERS - do not storef addresses of string constants in symbol table. 00061 // This option is needed if DLL library using FastDB can be unloaded. 00062 //#define CLONE_IDENTIFIERS 1 00063 00064 //DISKLESS_CONFIGURATION - only in-memory temporary database 00065 //#define DISKLESS_CONFIGURATION 1 00066 00067 // RECTANGLE_DIMENSION - dimension of built-in rectangle type 00068 #define RECTANGLE_DIMENSION 2 00069 00070 // RECTANGLE_COORDINATE_TYPE - type of rectanlge's coordinates 00071 #define RECTANGLE_COORDINATE_TYPE int 00072 //#define RECTANGLE_COORDINATE_TYPE double 00073 00074 // RECTANGLE_AREA_TYPE - type of rectanlge's area 00075 #define RECTANGLE_AREA_TYPE db_int8 00076 //#define RECTANGLE_AREA_TYPE double 00077 00078 //SET_NULL_DACL - use NULL DACL security descriptor for all synchronization objects. 00079 //#define SET_NULL_DACL 1 00080 00081 //INT8_IS_DEFINED - int8 type is defined at your system, in this case you should use db_int8 type instead 00082 //#define INT8_IS_DEFINED 1 00083 00084 //USE_POSIX_SEMAPHORES use POSIX sem_* sempahores instead of SysV semaphores 00085 // instead of SysV semaphores and shared memory 00086 //#define USE_POSIX_SEMAPHORES 1 00087 00088 00089 //USE_POSIX_MMAP - if 1 then use Posix mmap for mapping database file and monitor, 00090 // if 0 - use SysV IPC shmem for allocating memory for database file and monitor, 00091 // if not defined - use mmap for mapping database file and shmem for allocating monitor 00092 //#define USE_POSIX_MMAP 0 00093 00094 //REPLICATION_SUPPORT - fault tolerant version of FastDB 00095 //#define REPLICATION_SUPPORT 1 00096 00097 //NO_MMAP do not use OS mappig of file on virtual memory. FastDB will track modification of 00098 // pages itself and save dirty pages in the file. If USE_POSIX_MMAP=0, memory for database is 00099 // allocated using shmat() and database can be shared by several processes, 00100 // otherwise - using valloc() and database can be accessed only by one process. 00101 //#define NO_MMAP 1 00102 00103 //FUZZY_CHECKPOINT allows to increase application performance, by performing wrinting to the file in 00104 // in separate thread. In this case commit will not be blocked until all changes will be actually written to the disk, 00105 // write requests will be just linked into the queue from which them will be taken by writting thread and proceeded 00106 // in the same order as in commit. This apporach provides daatbase consistency in case of fault, but results 00107 // of several recently committed transaction can be lost in this case. 00108 // Fuzzy checkpointing works only in conjunction with NO_MMAP option, it means that data sharing is not allowed 00109 // in this case - database can be accessed only by one application. 00110 //#define FUZZY_CHECKPOINT 1 00111 00112 00113 //USE_MFC - use MFC (include "afx.h" instead of "windows.h") 00114 //#define USE_MFC 1 00115 00116 //USE_ATL - use Microsoft ATL 00117 //#define USE_ATL 1 00118 00119 // Do not use member templates 00120 #if defined(__SUNPRO_CC_COMPAT) && __SUNPRO_CC_COMPAT == 4 00121 #define NO_MEMBER_TEMPLATES 00122 #endif 00123 00124 // Automatically detect and recover crash of one or more database clients. 00125 // FastDB will start separate watchdog threads which will check if other processes working with database are 00126 // alive. 00127 // It is not recommended to use this mode because there are many cases whern it works incorrectly. 00128 // Preferable way of handling process failure is using of RECOVERABLE_CRITICAL_SECTION. 00129 //#define AUTO_DETECT_PROCESS_CRASH 1 00130 00131 // Use recoverable critical section (operating system is able to release 00132 // critical section in case of crash of the process entered this critical section) 00133 //#define RECOVERABLE_CRITICAL_SECTION 1 00134 00135 // Do not flush chafges to the disk during transaction commit. This option will greatly increase performance 00136 // but can cause database corruption in case of crash 00137 #define NO_FLUSH_ON_COMMIT 1 00138 00139 // dbDatabaseOidBits number of bits used to represent object identifier. 00140 // So the number of objects in database is limited by 2**dbDatabaseOidBits. 00141 // Default value of this parameter is 32, so maximal number of objects is limited by 2**32. 00142 // Support of larger number of objects is possible only at 64-bit OS 00143 // The value of this parameter is used to estimate size of bitmap, so do not assign unnecessarily 00144 // large values (for example 64) 00145 //#define dbDatabaseOidBits 33 00146 00147 // dbDatabaseOffsetBits number of bits used to represent object offset in the storage 00148 // So the maximal database size is limited by 2**dbDatabaseOidBits. 00149 // Default value of this parameter is 32, so maximal number of objects is limited by 2**32. 00150 // Support of larger database size only at 64-bit OS 00151 // The value of this parameter is used to estimate size of bitmap, so do not assign unnecessarily 00152 // large values (for example 64) 00153 //#define dbDatabaseOffsetBits 38 00154 00155 // USE_REGEX - use regex library. When this macro is defined GigaBASE provides 00156 // MATCH command. GNU regex or compatible library and headers should be available. 00157 //#define USE_REGEX true 00158 00159 // Calling convention used for CLI callback functions 00160 // You should use stdcall convention if you want to use CSharp CLI API 00161 //#define CLI_CALLBACK_CC __stdcall 00162 00163 // SOCK_LINGER - set SO_LINGER option. Value of SO_LINGER is specified using LINGER_TIME 00164 // #define SOCK_LINGER 1 00165 00166 00167 // Use reentrant version of localtime 00168 #if !defined(__APPLE__) && !defined(_WIN32) 00169 #define HAVE_LOCALTIME_R 00170 #endif 00171 00172 // Use reentrant version of localtime 00173 #if !defined(__APPLE__) && !defined(_WIN32) 00174 #define HAVE_GETHOSTBYNAME_R 00175 #endif 00176 00177 #endif 00178