File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / sqlite3 / src / test_config.c
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 17:04:17 2012 UTC (12 years, 8 months ago) by misho
Branches: sqlite3, MAIN
CVS tags: v3_7_10, HEAD
sqlite3

    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>