Annotation of embedaddon/sqlite3/src/test_config.c, revision 1.1.1.1

1.1       misho       1: /*
                      2: ** 2007 May 7
                      3: **
                      4: ** The author disclaims copyright to this source code.  In place of
                      5: ** a legal notice, here is a blessing:
                      6: **
                      7: **    May you do good and not evil.
                      8: **    May you find forgiveness for yourself and forgive others.
                      9: **    May you share freely, never taking more than you give.
                     10: **
                     11: *************************************************************************
                     12: ** 
                     13: ** This file contains code used for testing the SQLite system.
                     14: ** None of the code in this file goes into a deliverable build.
                     15: ** 
                     16: ** The focus of this file is providing the TCL testing layer
                     17: ** access to compile-time constants.
                     18: */
                     19: 
                     20: #include "sqliteLimit.h"
                     21: 
                     22: #include "sqliteInt.h"
                     23: #include "tcl.h"
                     24: #include <stdlib.h>
                     25: #include <string.h>
                     26: 
                     27: /*
                     28: ** Macro to stringify the results of the evaluation a pre-processor
                     29: ** macro. i.e. so that STRINGVALUE(SQLITE_NOMEM) -> "7".
                     30: */
                     31: #define STRINGVALUE2(x) #x
                     32: #define STRINGVALUE(x) STRINGVALUE2(x)
                     33: 
                     34: /*
                     35: ** This routine sets entries in the global ::sqlite_options() array variable
                     36: ** according to the compile-time configuration of the database.  Test
                     37: ** procedures use this to determine when tests should be omitted.
                     38: */
                     39: static void set_options(Tcl_Interp *interp){
                     40: #ifdef HAVE_MALLOC_USABLE_SIZE
                     41:   Tcl_SetVar2(interp, "sqlite_options", "malloc_usable_size", "1",
                     42:               TCL_GLOBAL_ONLY);
                     43: #else
                     44:   Tcl_SetVar2(interp, "sqlite_options", "malloc_usable_size", "0",
                     45:               TCL_GLOBAL_ONLY);
                     46: #endif
                     47: 
                     48: #ifdef SQLITE_32BIT_ROWID
                     49:   Tcl_SetVar2(interp, "sqlite_options", "rowid32", "1", TCL_GLOBAL_ONLY);
                     50: #else
                     51:   Tcl_SetVar2(interp, "sqlite_options", "rowid32", "0", TCL_GLOBAL_ONLY);
                     52: #endif
                     53: 
                     54: #ifdef SQLITE_CASE_SENSITIVE_LIKE
                     55:   Tcl_SetVar2(interp, "sqlite_options","casesensitivelike","1",TCL_GLOBAL_ONLY);
                     56: #else
                     57:   Tcl_SetVar2(interp, "sqlite_options","casesensitivelike","0",TCL_GLOBAL_ONLY);
                     58: #endif
                     59: 
                     60: #ifdef SQLITE_DEBUG
                     61:   Tcl_SetVar2(interp, "sqlite_options", "debug", "1", TCL_GLOBAL_ONLY);
                     62: #else
                     63:   Tcl_SetVar2(interp, "sqlite_options", "debug", "0", TCL_GLOBAL_ONLY);
                     64: #endif
                     65: 
                     66: #ifdef SQLITE_DIRECT_OVERFLOW_READ
                     67:   Tcl_SetVar2(interp, "sqlite_options", "direct_read", "1", TCL_GLOBAL_ONLY);
                     68: #else
                     69:   Tcl_SetVar2(interp, "sqlite_options", "direct_read", "0", TCL_GLOBAL_ONLY);
                     70: #endif
                     71: 
                     72: #ifdef SQLITE_DISABLE_DIRSYNC
                     73:   Tcl_SetVar2(interp, "sqlite_options", "dirsync", "0", TCL_GLOBAL_ONLY);
                     74: #else
                     75:   Tcl_SetVar2(interp, "sqlite_options", "dirsync", "1", TCL_GLOBAL_ONLY);
                     76: #endif
                     77: 
                     78: #ifdef SQLITE_DISABLE_LFS
                     79:   Tcl_SetVar2(interp, "sqlite_options", "lfs", "0", TCL_GLOBAL_ONLY);
                     80: #else
                     81:   Tcl_SetVar2(interp, "sqlite_options", "lfs", "1", TCL_GLOBAL_ONLY);
                     82: #endif
                     83: 
                     84: #if 1 /* def SQLITE_MEMDEBUG */
                     85:   Tcl_SetVar2(interp, "sqlite_options", "memdebug", "1", TCL_GLOBAL_ONLY);
                     86: #else
                     87:   Tcl_SetVar2(interp, "sqlite_options", "memdebug", "0", TCL_GLOBAL_ONLY);
                     88: #endif
                     89: 
                     90: #ifdef SQLITE_ENABLE_8_3_NAMES
                     91:   Tcl_SetVar2(interp, "sqlite_options", "8_3_names", "1", TCL_GLOBAL_ONLY);
                     92: #else
                     93:   Tcl_SetVar2(interp, "sqlite_options", "8_3_names", "0", TCL_GLOBAL_ONLY);
                     94: #endif
                     95: 
                     96: #ifdef SQLITE_ENABLE_MEMSYS3
                     97:   Tcl_SetVar2(interp, "sqlite_options", "mem3", "1", TCL_GLOBAL_ONLY);
                     98: #else
                     99:   Tcl_SetVar2(interp, "sqlite_options", "mem3", "0", TCL_GLOBAL_ONLY);
                    100: #endif
                    101: 
                    102: #ifdef SQLITE_ENABLE_MEMSYS5
                    103:   Tcl_SetVar2(interp, "sqlite_options", "mem5", "1", TCL_GLOBAL_ONLY);
                    104: #else
                    105:   Tcl_SetVar2(interp, "sqlite_options", "mem5", "0", TCL_GLOBAL_ONLY);
                    106: #endif
                    107: 
                    108: #ifdef SQLITE_MUTEX_OMIT
                    109:   Tcl_SetVar2(interp, "sqlite_options", "mutex", "0", TCL_GLOBAL_ONLY);
                    110: #else
                    111:   Tcl_SetVar2(interp, "sqlite_options", "mutex", "1", TCL_GLOBAL_ONLY);
                    112: #endif
                    113: 
                    114: #ifdef SQLITE_MUTEX_NOOP
                    115:   Tcl_SetVar2(interp, "sqlite_options", "mutex_noop", "1", TCL_GLOBAL_ONLY);
                    116: #else
                    117:   Tcl_SetVar2(interp, "sqlite_options", "mutex_noop", "0", TCL_GLOBAL_ONLY);
                    118: #endif
                    119: 
                    120: #ifdef SQLITE_OMIT_ALTERTABLE
                    121:   Tcl_SetVar2(interp, "sqlite_options", "altertable", "0", TCL_GLOBAL_ONLY);
                    122: #else
                    123:   Tcl_SetVar2(interp, "sqlite_options", "altertable", "1", TCL_GLOBAL_ONLY);
                    124: #endif
                    125: 
                    126: #ifdef SQLITE_OMIT_ANALYZE
                    127:   Tcl_SetVar2(interp, "sqlite_options", "analyze", "0", TCL_GLOBAL_ONLY);
                    128: #else
                    129:   Tcl_SetVar2(interp, "sqlite_options", "analyze", "1", TCL_GLOBAL_ONLY);
                    130: #endif
                    131: 
                    132: #ifdef SQLITE_ENABLE_ATOMIC_WRITE
                    133:   Tcl_SetVar2(interp, "sqlite_options", "atomicwrite", "1", TCL_GLOBAL_ONLY);
                    134: #else
                    135:   Tcl_SetVar2(interp, "sqlite_options", "atomicwrite", "0", TCL_GLOBAL_ONLY);
                    136: #endif
                    137: 
                    138: #ifdef SQLITE_OMIT_ATTACH
                    139:   Tcl_SetVar2(interp, "sqlite_options", "attach", "0", TCL_GLOBAL_ONLY);
                    140: #else
                    141:   Tcl_SetVar2(interp, "sqlite_options", "attach", "1", TCL_GLOBAL_ONLY);
                    142: #endif
                    143: 
                    144: #ifdef SQLITE_OMIT_AUTHORIZATION
                    145:   Tcl_SetVar2(interp, "sqlite_options", "auth", "0", TCL_GLOBAL_ONLY);
                    146: #else
                    147:   Tcl_SetVar2(interp, "sqlite_options", "auth", "1", TCL_GLOBAL_ONLY);
                    148: #endif
                    149: 
                    150: #ifdef SQLITE_OMIT_AUTOINCREMENT
                    151:   Tcl_SetVar2(interp, "sqlite_options", "autoinc", "0", TCL_GLOBAL_ONLY);
                    152: #else
                    153:   Tcl_SetVar2(interp, "sqlite_options", "autoinc", "1", TCL_GLOBAL_ONLY);
                    154: #endif
                    155: 
                    156: #ifdef SQLITE_OMIT_AUTOMATIC_INDEX
                    157:   Tcl_SetVar2(interp, "sqlite_options", "autoindex", "0", TCL_GLOBAL_ONLY);
                    158: #else
                    159:   Tcl_SetVar2(interp, "sqlite_options", "autoindex", "1", TCL_GLOBAL_ONLY);
                    160: #endif
                    161: 
                    162: #ifdef SQLITE_OMIT_AUTORESET
                    163:   Tcl_SetVar2(interp, "sqlite_options", "autoreset", "0", TCL_GLOBAL_ONLY);
                    164: #else
                    165:   Tcl_SetVar2(interp, "sqlite_options", "autoreset", "1", TCL_GLOBAL_ONLY);
                    166: #endif
                    167: 
                    168: #ifdef SQLITE_OMIT_AUTOVACUUM
                    169:   Tcl_SetVar2(interp, "sqlite_options", "autovacuum", "0", TCL_GLOBAL_ONLY);
                    170: #else
                    171:   Tcl_SetVar2(interp, "sqlite_options", "autovacuum", "1", TCL_GLOBAL_ONLY);
                    172: #endif /* SQLITE_OMIT_AUTOVACUUM */
                    173: #if !defined(SQLITE_DEFAULT_AUTOVACUUM)
                    174:   Tcl_SetVar2(interp,"sqlite_options","default_autovacuum","0",TCL_GLOBAL_ONLY);
                    175: #else
                    176:   Tcl_SetVar2(interp, "sqlite_options", "default_autovacuum", 
                    177:       STRINGVALUE(SQLITE_DEFAULT_AUTOVACUUM), TCL_GLOBAL_ONLY);
                    178: #endif
                    179: 
                    180: #ifdef SQLITE_OMIT_BETWEEN_OPTIMIZATION
                    181:   Tcl_SetVar2(interp, "sqlite_options", "between_opt", "0", TCL_GLOBAL_ONLY);
                    182: #else
                    183:   Tcl_SetVar2(interp, "sqlite_options", "between_opt", "1", TCL_GLOBAL_ONLY);
                    184: #endif
                    185: 
                    186: #ifdef SQLITE_OMIT_BUILTIN_TEST
                    187:   Tcl_SetVar2(interp, "sqlite_options", "builtin_test", "0", TCL_GLOBAL_ONLY);
                    188: #else
                    189:   Tcl_SetVar2(interp, "sqlite_options", "builtin_test", "1", TCL_GLOBAL_ONLY);
                    190: #endif
                    191: 
                    192: #ifdef SQLITE_OMIT_BLOB_LITERAL
                    193:   Tcl_SetVar2(interp, "sqlite_options", "bloblit", "0", TCL_GLOBAL_ONLY);
                    194: #else
                    195:   Tcl_SetVar2(interp, "sqlite_options", "bloblit", "1", TCL_GLOBAL_ONLY);
                    196: #endif
                    197: 
                    198: #ifdef SQLITE_OMIT_CAST
                    199:   Tcl_SetVar2(interp, "sqlite_options", "cast", "0", TCL_GLOBAL_ONLY);
                    200: #else
                    201:   Tcl_SetVar2(interp, "sqlite_options", "cast", "1", TCL_GLOBAL_ONLY);
                    202: #endif
                    203: 
                    204: #ifdef SQLITE_OMIT_CHECK
                    205:   Tcl_SetVar2(interp, "sqlite_options", "check", "0", TCL_GLOBAL_ONLY);
                    206: #else
                    207:   Tcl_SetVar2(interp, "sqlite_options", "check", "1", TCL_GLOBAL_ONLY);
                    208: #endif
                    209: 
                    210: #ifdef SQLITE_ENABLE_COLUMN_METADATA
                    211:   Tcl_SetVar2(interp, "sqlite_options", "columnmetadata", "1", TCL_GLOBAL_ONLY);
                    212: #else
                    213:   Tcl_SetVar2(interp, "sqlite_options", "columnmetadata", "0", TCL_GLOBAL_ONLY);
                    214: #endif
                    215: 
                    216: #ifdef SQLITE_ENABLE_OVERSIZE_CELL_CHECK
                    217:   Tcl_SetVar2(interp, "sqlite_options", "oversize_cell_check", "1",
                    218:               TCL_GLOBAL_ONLY);
                    219: #else
                    220:   Tcl_SetVar2(interp, "sqlite_options", "oversize_cell_check", "0",
                    221:               TCL_GLOBAL_ONLY);
                    222: #endif
                    223: 
                    224: #ifdef SQLITE_OMIT_COMPILEOPTION_DIAGS
                    225:   Tcl_SetVar2(interp, "sqlite_options", "compileoption_diags", "0", TCL_GLOBAL_ONLY);
                    226: #else
                    227:   Tcl_SetVar2(interp, "sqlite_options", "compileoption_diags", "1", TCL_GLOBAL_ONLY);
                    228: #endif
                    229: 
                    230: #ifdef SQLITE_OMIT_COMPLETE
                    231:   Tcl_SetVar2(interp, "sqlite_options", "complete", "0", TCL_GLOBAL_ONLY);
                    232: #else
                    233:   Tcl_SetVar2(interp, "sqlite_options", "complete", "1", TCL_GLOBAL_ONLY);
                    234: #endif
                    235: 
                    236: #ifdef SQLITE_OMIT_COMPOUND_SELECT
                    237:   Tcl_SetVar2(interp, "sqlite_options", "compound", "0", TCL_GLOBAL_ONLY);
                    238: #else
                    239:   Tcl_SetVar2(interp, "sqlite_options", "compound", "1", TCL_GLOBAL_ONLY);
                    240: #endif
                    241: 
                    242:   Tcl_SetVar2(interp, "sqlite_options", "conflict", "1", TCL_GLOBAL_ONLY);
                    243: 
                    244: #if SQLITE_OS_UNIX
                    245:   Tcl_SetVar2(interp, "sqlite_options", "crashtest", "1", TCL_GLOBAL_ONLY);
                    246: #else
                    247:   Tcl_SetVar2(interp, "sqlite_options", "crashtest", "0", TCL_GLOBAL_ONLY);
                    248: #endif
                    249: 
                    250: #ifdef SQLITE_OMIT_DATETIME_FUNCS
                    251:   Tcl_SetVar2(interp, "sqlite_options", "datetime", "0", TCL_GLOBAL_ONLY);
                    252: #else
                    253:   Tcl_SetVar2(interp, "sqlite_options", "datetime", "1", TCL_GLOBAL_ONLY);
                    254: #endif
                    255: 
                    256: #ifdef SQLITE_OMIT_DECLTYPE
                    257:   Tcl_SetVar2(interp, "sqlite_options", "decltype", "0", TCL_GLOBAL_ONLY);
                    258: #else
                    259:   Tcl_SetVar2(interp, "sqlite_options", "decltype", "1", TCL_GLOBAL_ONLY);
                    260: #endif
                    261: 
                    262: #ifdef SQLITE_OMIT_DEPRECATED
                    263:   Tcl_SetVar2(interp, "sqlite_options", "deprecated", "0", TCL_GLOBAL_ONLY);
                    264: #else
                    265:   Tcl_SetVar2(interp, "sqlite_options", "deprecated", "1", TCL_GLOBAL_ONLY);
                    266: #endif
                    267: 
                    268: #ifdef SQLITE_OMIT_DISKIO
                    269:   Tcl_SetVar2(interp, "sqlite_options", "diskio", "0", TCL_GLOBAL_ONLY);
                    270: #else
                    271:   Tcl_SetVar2(interp, "sqlite_options", "diskio", "1", TCL_GLOBAL_ONLY);
                    272: #endif
                    273: 
                    274: #ifdef SQLITE_OMIT_EXPLAIN
                    275:   Tcl_SetVar2(interp, "sqlite_options", "explain", "0", TCL_GLOBAL_ONLY);
                    276: #else
                    277:   Tcl_SetVar2(interp, "sqlite_options", "explain", "1", TCL_GLOBAL_ONLY);
                    278: #endif
                    279: 
                    280: #ifdef SQLITE_OMIT_FLOATING_POINT
                    281:   Tcl_SetVar2(interp, "sqlite_options", "floatingpoint", "0", TCL_GLOBAL_ONLY);
                    282: #else
                    283:   Tcl_SetVar2(interp, "sqlite_options", "floatingpoint", "1", TCL_GLOBAL_ONLY);
                    284: #endif
                    285: 
                    286: #ifdef SQLITE_OMIT_FOREIGN_KEY
                    287:   Tcl_SetVar2(interp, "sqlite_options", "foreignkey", "0", TCL_GLOBAL_ONLY);
                    288: #else
                    289:   Tcl_SetVar2(interp, "sqlite_options", "foreignkey", "1", TCL_GLOBAL_ONLY);
                    290: #endif
                    291: 
                    292: #ifdef SQLITE_ENABLE_FTS1
                    293:   Tcl_SetVar2(interp, "sqlite_options", "fts1", "1", TCL_GLOBAL_ONLY);
                    294: #else
                    295:   Tcl_SetVar2(interp, "sqlite_options", "fts1", "0", TCL_GLOBAL_ONLY);
                    296: #endif
                    297: 
                    298: #ifdef SQLITE_ENABLE_FTS2
                    299:   Tcl_SetVar2(interp, "sqlite_options", "fts2", "1", TCL_GLOBAL_ONLY);
                    300: #else
                    301:   Tcl_SetVar2(interp, "sqlite_options", "fts2", "0", TCL_GLOBAL_ONLY);
                    302: #endif
                    303: 
                    304: #ifdef SQLITE_ENABLE_FTS3
                    305:   Tcl_SetVar2(interp, "sqlite_options", "fts3", "1", TCL_GLOBAL_ONLY);
                    306: #else
                    307:   Tcl_SetVar2(interp, "sqlite_options", "fts3", "0", TCL_GLOBAL_ONLY);
                    308: #endif
                    309: 
                    310: #ifdef SQLITE_OMIT_GET_TABLE
                    311:   Tcl_SetVar2(interp, "sqlite_options", "gettable", "0", TCL_GLOBAL_ONLY);
                    312: #else
                    313:   Tcl_SetVar2(interp, "sqlite_options", "gettable", "1", TCL_GLOBAL_ONLY);
                    314: #endif
                    315: 
                    316: #ifdef SQLITE_ENABLE_ICU
                    317:   Tcl_SetVar2(interp, "sqlite_options", "icu", "1", TCL_GLOBAL_ONLY);
                    318: #else
                    319:   Tcl_SetVar2(interp, "sqlite_options", "icu", "0", TCL_GLOBAL_ONLY);
                    320: #endif
                    321: 
                    322: #ifdef SQLITE_OMIT_INCRBLOB
                    323:   Tcl_SetVar2(interp, "sqlite_options", "incrblob", "0", TCL_GLOBAL_ONLY);
                    324: #else
                    325:   Tcl_SetVar2(interp, "sqlite_options", "incrblob", "1", TCL_GLOBAL_ONLY);
                    326: #endif /* SQLITE_OMIT_AUTOVACUUM */
                    327: 
                    328: #ifdef SQLITE_OMIT_INTEGRITY_CHECK
                    329:   Tcl_SetVar2(interp, "sqlite_options", "integrityck", "0", TCL_GLOBAL_ONLY);
                    330: #else
                    331:   Tcl_SetVar2(interp, "sqlite_options", "integrityck", "1", TCL_GLOBAL_ONLY);
                    332: #endif
                    333: 
                    334: #if defined(SQLITE_DEFAULT_FILE_FORMAT) && SQLITE_DEFAULT_FILE_FORMAT==1
                    335:   Tcl_SetVar2(interp, "sqlite_options", "legacyformat", "1", TCL_GLOBAL_ONLY);
                    336: #else
                    337:   Tcl_SetVar2(interp, "sqlite_options", "legacyformat", "0", TCL_GLOBAL_ONLY);
                    338: #endif
                    339: 
                    340: #ifdef SQLITE_OMIT_LIKE_OPTIMIZATION
                    341:   Tcl_SetVar2(interp, "sqlite_options", "like_opt", "0", TCL_GLOBAL_ONLY);
                    342: #else
                    343:   Tcl_SetVar2(interp, "sqlite_options", "like_opt", "1", TCL_GLOBAL_ONLY);
                    344: #endif
                    345: 
                    346: #ifdef SQLITE_OMIT_LOAD_EXTENSION
                    347:   Tcl_SetVar2(interp, "sqlite_options", "load_ext", "0", TCL_GLOBAL_ONLY);
                    348: #else
                    349:   Tcl_SetVar2(interp, "sqlite_options", "load_ext", "1", TCL_GLOBAL_ONLY);
                    350: #endif
                    351: 
                    352: #ifdef SQLITE_OMIT_LOCALTIME
                    353:   Tcl_SetVar2(interp, "sqlite_options", "localtime", "0", TCL_GLOBAL_ONLY);
                    354: #else
                    355:   Tcl_SetVar2(interp, "sqlite_options", "localtime", "1", TCL_GLOBAL_ONLY);
                    356: #endif
                    357: 
                    358: #ifdef SQLITE_OMIT_LOOKASIDE
                    359:   Tcl_SetVar2(interp, "sqlite_options", "lookaside", "0", TCL_GLOBAL_ONLY);
                    360: #else
                    361:   Tcl_SetVar2(interp, "sqlite_options", "lookaside", "1", TCL_GLOBAL_ONLY);
                    362: #endif
                    363: 
                    364: Tcl_SetVar2(interp, "sqlite_options", "long_double",
                    365:               sizeof(LONGDOUBLE_TYPE)>sizeof(double) ? "1" : "0",
                    366:               TCL_GLOBAL_ONLY);
                    367: 
                    368: #ifdef SQLITE_OMIT_MEMORYDB
                    369:   Tcl_SetVar2(interp, "sqlite_options", "memorydb", "0", TCL_GLOBAL_ONLY);
                    370: #else
                    371:   Tcl_SetVar2(interp, "sqlite_options", "memorydb", "1", TCL_GLOBAL_ONLY);
                    372: #endif
                    373: 
                    374: #ifdef SQLITE_ENABLE_MEMORY_MANAGEMENT
                    375:   Tcl_SetVar2(interp, "sqlite_options", "memorymanage", "1", TCL_GLOBAL_ONLY);
                    376: #else
                    377:   Tcl_SetVar2(interp, "sqlite_options", "memorymanage", "0", TCL_GLOBAL_ONLY);
                    378: #endif
                    379: 
                    380: #ifdef SQLITE_OMIT_MERGE_SORT
                    381:   Tcl_SetVar2(interp, "sqlite_options", "mergesort", "0", TCL_GLOBAL_ONLY);
                    382: #else
                    383:   Tcl_SetVar2(interp, "sqlite_options", "mergesort", "1", TCL_GLOBAL_ONLY);
                    384: #endif
                    385: 
                    386: #ifdef SQLITE_OMIT_OR_OPTIMIZATION
                    387:   Tcl_SetVar2(interp, "sqlite_options", "or_opt", "0", TCL_GLOBAL_ONLY);
                    388: #else
                    389:   Tcl_SetVar2(interp, "sqlite_options", "or_opt", "1", TCL_GLOBAL_ONLY);
                    390: #endif
                    391: 
                    392: #ifdef SQLITE_OMIT_PAGER_PRAGMAS
                    393:   Tcl_SetVar2(interp, "sqlite_options", "pager_pragmas", "0", TCL_GLOBAL_ONLY);
                    394: #else
                    395:   Tcl_SetVar2(interp, "sqlite_options", "pager_pragmas", "1", TCL_GLOBAL_ONLY);
                    396: #endif
                    397: 
                    398: #if defined(SQLITE_OMIT_PRAGMA) || defined(SQLITE_OMIT_FLAG_PRAGMAS)
                    399:   Tcl_SetVar2(interp, "sqlite_options", "pragma", "0", TCL_GLOBAL_ONLY);
                    400:   Tcl_SetVar2(interp, "sqlite_options", "integrityck", "0", TCL_GLOBAL_ONLY);
                    401: #else
                    402:   Tcl_SetVar2(interp, "sqlite_options", "pragma", "1", TCL_GLOBAL_ONLY);
                    403: #endif
                    404: 
                    405: #ifdef SQLITE_OMIT_PROGRESS_CALLBACK
                    406:   Tcl_SetVar2(interp, "sqlite_options", "progress", "0", TCL_GLOBAL_ONLY);
                    407: #else
                    408:   Tcl_SetVar2(interp, "sqlite_options", "progress", "1", TCL_GLOBAL_ONLY);
                    409: #endif
                    410: 
                    411: #ifdef SQLITE_OMIT_REINDEX
                    412:   Tcl_SetVar2(interp, "sqlite_options", "reindex", "0", TCL_GLOBAL_ONLY);
                    413: #else
                    414:   Tcl_SetVar2(interp, "sqlite_options", "reindex", "1", TCL_GLOBAL_ONLY);
                    415: #endif
                    416: 
                    417: #ifdef SQLITE_ENABLE_RTREE
                    418:   Tcl_SetVar2(interp, "sqlite_options", "rtree", "1", TCL_GLOBAL_ONLY);
                    419: #else
                    420:   Tcl_SetVar2(interp, "sqlite_options", "rtree", "0", TCL_GLOBAL_ONLY);
                    421: #endif
                    422: 
                    423: #ifdef SQLITE_OMIT_SCHEMA_PRAGMAS
                    424:   Tcl_SetVar2(interp, "sqlite_options", "schema_pragmas", "0", TCL_GLOBAL_ONLY);
                    425: #else
                    426:   Tcl_SetVar2(interp, "sqlite_options", "schema_pragmas", "1", TCL_GLOBAL_ONLY);
                    427: #endif
                    428: 
                    429: #ifdef SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS
                    430:   Tcl_SetVar2(interp, "sqlite_options", "schema_version", "0", TCL_GLOBAL_ONLY);
                    431: #else
                    432:   Tcl_SetVar2(interp, "sqlite_options", "schema_version", "1", TCL_GLOBAL_ONLY);
                    433: #endif
                    434: 
                    435: #ifdef SQLITE_ENABLE_STAT3
                    436:   Tcl_SetVar2(interp, "sqlite_options", "stat3", "1", TCL_GLOBAL_ONLY);
                    437: #else
                    438:   Tcl_SetVar2(interp, "sqlite_options", "stat3", "0", TCL_GLOBAL_ONLY);
                    439: #endif
                    440: 
                    441: #if !defined(SQLITE_ENABLE_LOCKING_STYLE)
                    442: #  if defined(__APPLE__)
                    443: #    define SQLITE_ENABLE_LOCKING_STYLE 1
                    444: #  else
                    445: #    define SQLITE_ENABLE_LOCKING_STYLE 0
                    446: #  endif
                    447: #endif
                    448: #if SQLITE_ENABLE_LOCKING_STYLE && defined(__APPLE__)
                    449:   Tcl_SetVar2(interp,"sqlite_options","lock_proxy_pragmas","1",TCL_GLOBAL_ONLY);
                    450: #else
                    451:   Tcl_SetVar2(interp,"sqlite_options","lock_proxy_pragmas","0",TCL_GLOBAL_ONLY);
                    452: #endif
                    453: #if defined(SQLITE_PREFER_PROXY_LOCKING) && defined(__APPLE__)
                    454:   Tcl_SetVar2(interp,"sqlite_options","prefer_proxy_locking","1",TCL_GLOBAL_ONLY);
                    455: #else
                    456:   Tcl_SetVar2(interp,"sqlite_options","prefer_proxy_locking","0",TCL_GLOBAL_ONLY);
                    457: #endif
                    458:     
                    459:     
                    460: #ifdef SQLITE_OMIT_SHARED_CACHE
                    461:   Tcl_SetVar2(interp, "sqlite_options", "shared_cache", "0", TCL_GLOBAL_ONLY);
                    462: #else
                    463:   Tcl_SetVar2(interp, "sqlite_options", "shared_cache", "1", TCL_GLOBAL_ONLY);
                    464: #endif
                    465: 
                    466: #ifdef SQLITE_OMIT_SUBQUERY
                    467:   Tcl_SetVar2(interp, "sqlite_options", "subquery", "0", TCL_GLOBAL_ONLY);
                    468: #else
                    469:   Tcl_SetVar2(interp, "sqlite_options", "subquery", "1", TCL_GLOBAL_ONLY);
                    470: #endif
                    471: 
                    472: #ifdef SQLITE_OMIT_TCL_VARIABLE
                    473:   Tcl_SetVar2(interp, "sqlite_options", "tclvar", "0", TCL_GLOBAL_ONLY);
                    474: #else
                    475:   Tcl_SetVar2(interp, "sqlite_options", "tclvar", "1", TCL_GLOBAL_ONLY);
                    476: #endif
                    477: 
                    478:   Tcl_SetVar2(interp, "sqlite_options", "threadsafe", 
                    479:       STRINGVALUE(SQLITE_THREADSAFE), TCL_GLOBAL_ONLY);
                    480:   assert( sqlite3_threadsafe()==SQLITE_THREADSAFE );
                    481: 
                    482: #ifdef SQLITE_OMIT_TEMPDB
                    483:   Tcl_SetVar2(interp, "sqlite_options", "tempdb", "0", TCL_GLOBAL_ONLY);
                    484: #else
                    485:   Tcl_SetVar2(interp, "sqlite_options", "tempdb", "1", TCL_GLOBAL_ONLY);
                    486: #endif
                    487: 
                    488: #ifdef SQLITE_OMIT_TRACE
                    489:   Tcl_SetVar2(interp, "sqlite_options", "trace", "0", TCL_GLOBAL_ONLY);
                    490: #else
                    491:   Tcl_SetVar2(interp, "sqlite_options", "trace", "1", TCL_GLOBAL_ONLY);
                    492: #endif
                    493: 
                    494: #ifdef SQLITE_OMIT_TRIGGER
                    495:   Tcl_SetVar2(interp, "sqlite_options", "trigger", "0", TCL_GLOBAL_ONLY);
                    496: #else
                    497:   Tcl_SetVar2(interp, "sqlite_options", "trigger", "1", TCL_GLOBAL_ONLY);
                    498: #endif
                    499: 
                    500: #ifdef SQLITE_OMIT_TRUNCATE_OPTIMIZATION
                    501:   Tcl_SetVar2(interp, "sqlite_options", "truncate_opt", "0", TCL_GLOBAL_ONLY);
                    502: #else
                    503:   Tcl_SetVar2(interp, "sqlite_options", "truncate_opt", "1", TCL_GLOBAL_ONLY);
                    504: #endif
                    505: 
                    506: #ifdef SQLITE_OMIT_UTF16
                    507:   Tcl_SetVar2(interp, "sqlite_options", "utf16", "0", TCL_GLOBAL_ONLY);
                    508: #else
                    509:   Tcl_SetVar2(interp, "sqlite_options", "utf16", "1", TCL_GLOBAL_ONLY);
                    510: #endif
                    511: 
                    512: #if defined(SQLITE_OMIT_VACUUM) || defined(SQLITE_OMIT_ATTACH)
                    513:   Tcl_SetVar2(interp, "sqlite_options", "vacuum", "0", TCL_GLOBAL_ONLY);
                    514: #else
                    515:   Tcl_SetVar2(interp, "sqlite_options", "vacuum", "1", TCL_GLOBAL_ONLY);
                    516: #endif
                    517: 
                    518: #ifdef SQLITE_OMIT_VIEW
                    519:   Tcl_SetVar2(interp, "sqlite_options", "view", "0", TCL_GLOBAL_ONLY);
                    520: #else
                    521:   Tcl_SetVar2(interp, "sqlite_options", "view", "1", TCL_GLOBAL_ONLY);
                    522: #endif
                    523: 
                    524: #ifdef SQLITE_OMIT_VIRTUALTABLE
                    525:   Tcl_SetVar2(interp, "sqlite_options", "vtab", "0", TCL_GLOBAL_ONLY);
                    526: #else
                    527:   Tcl_SetVar2(interp, "sqlite_options", "vtab", "1", TCL_GLOBAL_ONLY);
                    528: #endif
                    529: 
                    530: #ifdef SQLITE_OMIT_WAL
                    531:   Tcl_SetVar2(interp, "sqlite_options", "wal", "0", TCL_GLOBAL_ONLY);
                    532: #else
                    533:   Tcl_SetVar2(interp, "sqlite_options", "wal", "1", TCL_GLOBAL_ONLY);
                    534: #endif
                    535: 
                    536: #ifdef SQLITE_OMIT_WSD
                    537:   Tcl_SetVar2(interp, "sqlite_options", "wsd", "0", TCL_GLOBAL_ONLY);
                    538: #else
                    539:   Tcl_SetVar2(interp, "sqlite_options", "wsd", "1", TCL_GLOBAL_ONLY);
                    540: #endif
                    541: 
                    542: #if defined(SQLITE_ENABLE_UPDATE_DELETE_LIMIT) && !defined(SQLITE_OMIT_SUBQUERY)
                    543:   Tcl_SetVar2(interp, "sqlite_options", "update_delete_limit", "1", TCL_GLOBAL_ONLY);
                    544: #else
                    545:   Tcl_SetVar2(interp, "sqlite_options", "update_delete_limit", "0", TCL_GLOBAL_ONLY);
                    546: #endif
                    547: 
                    548: #if defined(SQLITE_ENABLE_UNLOCK_NOTIFY)
                    549:   Tcl_SetVar2(interp, "sqlite_options", "unlock_notify", "1", TCL_GLOBAL_ONLY);
                    550: #else
                    551:   Tcl_SetVar2(interp, "sqlite_options", "unlock_notify", "0", TCL_GLOBAL_ONLY);
                    552: #endif
                    553: 
                    554: #ifdef SQLITE_SECURE_DELETE
                    555:   Tcl_SetVar2(interp, "sqlite_options", "secure_delete", "1", TCL_GLOBAL_ONLY);
                    556: #else
                    557:   Tcl_SetVar2(interp, "sqlite_options", "secure_delete", "0", TCL_GLOBAL_ONLY);
                    558: #endif
                    559: 
                    560: #ifdef SQLITE_MULTIPLEX_EXT_OVWR
                    561:   Tcl_SetVar2(interp, "sqlite_options", "multiplex_ext_overwrite", "1", TCL_GLOBAL_ONLY);
                    562: #else
                    563:   Tcl_SetVar2(interp, "sqlite_options", "multiplex_ext_overwrite", "0", TCL_GLOBAL_ONLY);
                    564: #endif
                    565: 
                    566: #ifdef YYTRACKMAXSTACKDEPTH
                    567:   Tcl_SetVar2(interp, "sqlite_options", "yytrackmaxstackdepth", "1", TCL_GLOBAL_ONLY);
                    568: #else
                    569:   Tcl_SetVar2(interp, "sqlite_options", "yytrackmaxstackdepth", "0", TCL_GLOBAL_ONLY);
                    570: #endif
                    571: 
                    572: #define LINKVAR(x) { \
                    573:     static const int cv_ ## x = SQLITE_ ## x; \
                    574:     Tcl_LinkVar(interp, "SQLITE_" #x, (char *)&(cv_ ## x), \
                    575:                 TCL_LINK_INT | TCL_LINK_READ_ONLY); }
                    576: 
                    577:   LINKVAR( MAX_LENGTH );
                    578:   LINKVAR( MAX_COLUMN );
                    579:   LINKVAR( MAX_SQL_LENGTH );
                    580:   LINKVAR( MAX_EXPR_DEPTH );
                    581:   LINKVAR( MAX_COMPOUND_SELECT );
                    582:   LINKVAR( MAX_VDBE_OP );
                    583:   LINKVAR( MAX_FUNCTION_ARG );
                    584:   LINKVAR( MAX_VARIABLE_NUMBER );
                    585:   LINKVAR( MAX_PAGE_SIZE );
                    586:   LINKVAR( MAX_PAGE_COUNT );
                    587:   LINKVAR( MAX_LIKE_PATTERN_LENGTH );
                    588:   LINKVAR( MAX_TRIGGER_DEPTH );
                    589:   LINKVAR( DEFAULT_TEMP_CACHE_SIZE );
                    590:   LINKVAR( DEFAULT_CACHE_SIZE );
                    591:   LINKVAR( DEFAULT_PAGE_SIZE );
                    592:   LINKVAR( DEFAULT_FILE_FORMAT );
                    593:   LINKVAR( MAX_ATTACHED );
                    594:   LINKVAR( MAX_DEFAULT_PAGE_SIZE );
                    595: 
                    596:   {
                    597:     static const int cv_TEMP_STORE = SQLITE_TEMP_STORE;
                    598:     Tcl_LinkVar(interp, "TEMP_STORE", (char *)&(cv_TEMP_STORE),
                    599:                 TCL_LINK_INT | TCL_LINK_READ_ONLY);
                    600:   }
                    601: }
                    602: 
                    603: 
                    604: /*
                    605: ** Register commands with the TCL interpreter.
                    606: */
                    607: int Sqliteconfig_Init(Tcl_Interp *interp){
                    608:   set_options(interp);
                    609:   return TCL_OK;
                    610: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>