15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** 2007 May 7
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)**
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** The author disclaims copyright to this source code.  In place of
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** a legal notice, here is a blessing:
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)**
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)**    May you do good and not evil.
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)**    May you find forgiveness for yourself and forgive others.
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)**    May you share freely, never taking more than you give.
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)**
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*************************************************************************
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)**
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** This file contains code used for testing the SQLite system.
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** None of the code in this file goes into a deliverable build.
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)**
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** The focus of this file is providing the TCL testing layer
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** access to compile-time constants.
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sqliteLimit.h"
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sqliteInt.h"
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "tcl.h"
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <stdlib.h>
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <string.h>
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** Macro to stringify the results of the evaluation a pre-processor
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** macro. i.e. so that STRINGVALUE(SQLITE_NOMEM) -> "7".
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define STRINGVALUE2(x) #x
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define STRINGVALUE(x) STRINGVALUE2(x)
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** This routine sets entries in the global ::sqlite_options() array variable
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** according to the compile-time configuration of the database.  Test
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** procedures use this to determine when tests should be omitted.
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)static void set_options(Tcl_Interp *interp){
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_32BIT_ROWID
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "rowid32", "1", TCL_GLOBAL_ONLY);
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "rowid32", "0", TCL_GLOBAL_ONLY);
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_CASE_SENSITIVE_LIKE
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options","casesensitivelike","1",TCL_GLOBAL_ONLY);
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options","casesensitivelike","0",TCL_GLOBAL_ONLY);
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_DEBUG
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "debug", "1", TCL_GLOBAL_ONLY);
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "debug", "0", TCL_GLOBAL_ONLY);
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_DISABLE_DIRSYNC
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "dirsync", "0", TCL_GLOBAL_ONLY);
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "dirsync", "1", TCL_GLOBAL_ONLY);
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_DISABLE_LFS
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "lfs", "0", TCL_GLOBAL_ONLY);
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "lfs", "1", TCL_GLOBAL_ONLY);
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if 1 /* def SQLITE_MEMDEBUG */
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "memdebug", "1", TCL_GLOBAL_ONLY);
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "memdebug", "0", TCL_GLOBAL_ONLY);
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_ENABLE_MEMSYS3
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "mem3", "1", TCL_GLOBAL_ONLY);
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "mem3", "0", TCL_GLOBAL_ONLY);
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_ENABLE_MEMSYS5
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "mem5", "1", TCL_GLOBAL_ONLY);
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "mem5", "0", TCL_GLOBAL_ONLY);
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_MUTEX_OMIT
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "mutex", "0", TCL_GLOBAL_ONLY);
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "mutex", "1", TCL_GLOBAL_ONLY);
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_MUTEX_NOOP
955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "mutex_noop", "1", TCL_GLOBAL_ONLY);
965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "mutex_noop", "0", TCL_GLOBAL_ONLY);
985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_ALTERTABLE
1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "altertable", "0", TCL_GLOBAL_ONLY);
1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "altertable", "1", TCL_GLOBAL_ONLY);
1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_ANALYZE
1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "analyze", "0", TCL_GLOBAL_ONLY);
1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "analyze", "1", TCL_GLOBAL_ONLY);
1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_ENABLE_ATOMIC_WRITE
1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "atomicwrite", "1", TCL_GLOBAL_ONLY);
1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "atomicwrite", "0", TCL_GLOBAL_ONLY);
1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_ATTACH
1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "attach", "0", TCL_GLOBAL_ONLY);
1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "attach", "1", TCL_GLOBAL_ONLY);
1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_AUTHORIZATION
1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "auth", "0", TCL_GLOBAL_ONLY);
1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "auth", "1", TCL_GLOBAL_ONLY);
1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_AUTOINCREMENT
1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "autoinc", "0", TCL_GLOBAL_ONLY);
1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "autoinc", "1", TCL_GLOBAL_ONLY);
1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_AUTOMATIC_INDEX
1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "autoindex", "0", TCL_GLOBAL_ONLY);
1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "autoindex", "1", TCL_GLOBAL_ONLY);
1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_AUTORESET
1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "autoreset", "0", TCL_GLOBAL_ONLY);
1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "autoreset", "1", TCL_GLOBAL_ONLY);
1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_AUTOVACUUM
1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "autovacuum", "0", TCL_GLOBAL_ONLY);
1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "autovacuum", "1", TCL_GLOBAL_ONLY);
1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* SQLITE_OMIT_AUTOVACUUM */
1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(SQLITE_DEFAULT_AUTOVACUUM)
1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp,"sqlite_options","default_autovacuum","0",TCL_GLOBAL_ONLY);
1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "default_autovacuum",
1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      STRINGVALUE(SQLITE_DEFAULT_AUTOVACUUM), TCL_GLOBAL_ONLY);
1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_BETWEEN_OPTIMIZATION
1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "between_opt", "0", TCL_GLOBAL_ONLY);
1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "between_opt", "1", TCL_GLOBAL_ONLY);
1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_BUILTIN_TEST
1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "builtin_test", "0", TCL_GLOBAL_ONLY);
1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "builtin_test", "1", TCL_GLOBAL_ONLY);
1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_BLOB_LITERAL
1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "bloblit", "0", TCL_GLOBAL_ONLY);
1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "bloblit", "1", TCL_GLOBAL_ONLY);
1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_CAST
1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "cast", "0", TCL_GLOBAL_ONLY);
1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "cast", "1", TCL_GLOBAL_ONLY);
1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_CHECK
1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "check", "0", TCL_GLOBAL_ONLY);
1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "check", "1", TCL_GLOBAL_ONLY);
1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_ENABLE_COLUMN_METADATA
1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "columnmetadata", "1", TCL_GLOBAL_ONLY);
1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "columnmetadata", "0", TCL_GLOBAL_ONLY);
1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_ENABLE_OVERSIZE_CELL_CHECK
1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "oversize_cell_check", "1",
1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              TCL_GLOBAL_ONLY);
1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "oversize_cell_check", "0",
2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              TCL_GLOBAL_ONLY);
2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_COMPILEOPTION_DIAGS
2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "compileoption_diags", "0", TCL_GLOBAL_ONLY);
2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "compileoption_diags", "1", TCL_GLOBAL_ONLY);
2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_COMPLETE
2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "complete", "0", TCL_GLOBAL_ONLY);
2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "complete", "1", TCL_GLOBAL_ONLY);
2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_COMPOUND_SELECT
2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "compound", "0", TCL_GLOBAL_ONLY);
2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "compound", "1", TCL_GLOBAL_ONLY);
2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_CONFLICT_CLAUSE
2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "conflict", "0", TCL_GLOBAL_ONLY);
2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "conflict", "1", TCL_GLOBAL_ONLY);
2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if SQLITE_OS_UNIX
2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "crashtest", "1", TCL_GLOBAL_ONLY);
2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "crashtest", "0", TCL_GLOBAL_ONLY);
2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_DATETIME_FUNCS
2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "datetime", "0", TCL_GLOBAL_ONLY);
2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "datetime", "1", TCL_GLOBAL_ONLY);
2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_DECLTYPE
2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "decltype", "0", TCL_GLOBAL_ONLY);
2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "decltype", "1", TCL_GLOBAL_ONLY);
2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_DEPRECATED
2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "deprecated", "0", TCL_GLOBAL_ONLY);
2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "deprecated", "1", TCL_GLOBAL_ONLY);
2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_DISKIO
2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "diskio", "0", TCL_GLOBAL_ONLY);
2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "diskio", "1", TCL_GLOBAL_ONLY);
2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
2575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_EXPLAIN
2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "explain", "0", TCL_GLOBAL_ONLY);
2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "explain", "1", TCL_GLOBAL_ONLY);
2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
2635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_FLOATING_POINT
2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "floatingpoint", "0", TCL_GLOBAL_ONLY);
2665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "floatingpoint", "1", TCL_GLOBAL_ONLY);
2685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
2695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_FOREIGN_KEY
2715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "foreignkey", "0", TCL_GLOBAL_ONLY);
2725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
2735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "foreignkey", "1", TCL_GLOBAL_ONLY);
2745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
2755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_ENABLE_FTS1
2775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "fts1", "1", TCL_GLOBAL_ONLY);
2785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
2795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "fts1", "0", TCL_GLOBAL_ONLY);
2805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
2815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_ENABLE_FTS2
2835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "fts2", "1", TCL_GLOBAL_ONLY);
2845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
2855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "fts2", "0", TCL_GLOBAL_ONLY);
2865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
2875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_ENABLE_FTS3
2895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "fts3", "1", TCL_GLOBAL_ONLY);
2905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
2915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "fts3", "0", TCL_GLOBAL_ONLY);
2925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
2935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_GET_TABLE
2955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "gettable", "0", TCL_GLOBAL_ONLY);
2965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
2975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "gettable", "1", TCL_GLOBAL_ONLY);
2985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
2995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_ENABLE_ICU
3015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "icu", "1", TCL_GLOBAL_ONLY);
3025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
3035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "icu", "0", TCL_GLOBAL_ONLY);
3045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
3055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_INCRBLOB
3075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "incrblob", "0", TCL_GLOBAL_ONLY);
3085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
3095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "incrblob", "1", TCL_GLOBAL_ONLY);
3105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* SQLITE_OMIT_AUTOVACUUM */
3115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_INTEGRITY_CHECK
3135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "integrityck", "0", TCL_GLOBAL_ONLY);
3145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
3155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "integrityck", "1", TCL_GLOBAL_ONLY);
3165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
3175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(SQLITE_DEFAULT_FILE_FORMAT) && SQLITE_DEFAULT_FILE_FORMAT==1
3195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "legacyformat", "1", TCL_GLOBAL_ONLY);
3205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
3215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "legacyformat", "0", TCL_GLOBAL_ONLY);
3225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
3235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_LIKE_OPTIMIZATION
3255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "like_opt", "0", TCL_GLOBAL_ONLY);
3265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
3275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "like_opt", "1", TCL_GLOBAL_ONLY);
3285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
3295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_LOAD_EXTENSION
3315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "load_ext", "0", TCL_GLOBAL_ONLY);
3325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
3335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "load_ext", "1", TCL_GLOBAL_ONLY);
3345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
3355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_LOCALTIME
3375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "localtime", "0", TCL_GLOBAL_ONLY);
3385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
3395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "localtime", "1", TCL_GLOBAL_ONLY);
3405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
3415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_LOOKASIDE
3435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "lookaside", "0", TCL_GLOBAL_ONLY);
3445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
3455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "lookaside", "1", TCL_GLOBAL_ONLY);
3465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
3475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Tcl_SetVar2(interp, "sqlite_options", "long_double",
3495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              sizeof(LONGDOUBLE_TYPE)>sizeof(double) ? "1" : "0",
3505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              TCL_GLOBAL_ONLY);
3515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_MEMORYDB
3535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "memorydb", "0", TCL_GLOBAL_ONLY);
3545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
3555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "memorydb", "1", TCL_GLOBAL_ONLY);
3565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
3575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_ENABLE_MEMORY_MANAGEMENT
3595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "memorymanage", "1", TCL_GLOBAL_ONLY);
3605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
3615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "memorymanage", "0", TCL_GLOBAL_ONLY);
3625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
3635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_OR_OPTIMIZATION
3655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "or_opt", "0", TCL_GLOBAL_ONLY);
3665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
3675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "or_opt", "1", TCL_GLOBAL_ONLY);
3685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
3695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_PAGER_PRAGMAS
3715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "pager_pragmas", "0", TCL_GLOBAL_ONLY);
3725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
3735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "pager_pragmas", "1", TCL_GLOBAL_ONLY);
3745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
3755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(SQLITE_OMIT_PRAGMA) || defined(SQLITE_OMIT_FLAG_PRAGMAS)
3775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "pragma", "0", TCL_GLOBAL_ONLY);
3785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "integrityck", "0", TCL_GLOBAL_ONLY);
3795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
3805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "pragma", "1", TCL_GLOBAL_ONLY);
3815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
3825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_PROGRESS_CALLBACK
3845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "progress", "0", TCL_GLOBAL_ONLY);
3855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
3865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "progress", "1", TCL_GLOBAL_ONLY);
3875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
3885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_REINDEX
3905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "reindex", "0", TCL_GLOBAL_ONLY);
3915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
3925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "reindex", "1", TCL_GLOBAL_ONLY);
3935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
3945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_ENABLE_RTREE
3965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "rtree", "1", TCL_GLOBAL_ONLY);
3975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
3985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "rtree", "0", TCL_GLOBAL_ONLY);
3995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
4005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_SCHEMA_PRAGMAS
4025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "schema_pragmas", "0", TCL_GLOBAL_ONLY);
4035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
4045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "schema_pragmas", "1", TCL_GLOBAL_ONLY);
4055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
4065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS
4085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "schema_version", "0", TCL_GLOBAL_ONLY);
4095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
4105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "schema_version", "1", TCL_GLOBAL_ONLY);
4115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
4125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_ENABLE_STAT2
4145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "stat2", "1", TCL_GLOBAL_ONLY);
4155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
4165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "stat2", "0", TCL_GLOBAL_ONLY);
4175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
4185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(SQLITE_ENABLE_LOCKING_STYLE)
4205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#  if defined(__APPLE__)
4215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#    define SQLITE_ENABLE_LOCKING_STYLE 1
4225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#  else
4235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#    define SQLITE_ENABLE_LOCKING_STYLE 0
4245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#  endif
4255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
4265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if SQLITE_ENABLE_LOCKING_STYLE && defined(__APPLE__)
4275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp,"sqlite_options","lock_proxy_pragmas","1",TCL_GLOBAL_ONLY);
4285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
4295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp,"sqlite_options","lock_proxy_pragmas","0",TCL_GLOBAL_ONLY);
4305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
4315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(SQLITE_PREFER_PROXY_LOCKING) && defined(__APPLE__)
4325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp,"sqlite_options","prefer_proxy_locking","1",TCL_GLOBAL_ONLY);
4335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
4345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp,"sqlite_options","prefer_proxy_locking","0",TCL_GLOBAL_ONLY);
4355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
4365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_SHARED_CACHE
4395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "shared_cache", "0", TCL_GLOBAL_ONLY);
4405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
4415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "shared_cache", "1", TCL_GLOBAL_ONLY);
4425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
4435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_SUBQUERY
4455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "subquery", "0", TCL_GLOBAL_ONLY);
4465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
4475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "subquery", "1", TCL_GLOBAL_ONLY);
4485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
4495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_TCL_VARIABLE
4515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "tclvar", "0", TCL_GLOBAL_ONLY);
4525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
4535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "tclvar", "1", TCL_GLOBAL_ONLY);
4545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
4555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "threadsafe",
4575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      STRINGVALUE(SQLITE_THREADSAFE), TCL_GLOBAL_ONLY);
4585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  assert( sqlite3_threadsafe()==SQLITE_THREADSAFE );
4595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_TEMPDB
4615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "tempdb", "0", TCL_GLOBAL_ONLY);
4625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
4635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "tempdb", "1", TCL_GLOBAL_ONLY);
4645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
4655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_TRACE
4675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "trace", "0", TCL_GLOBAL_ONLY);
4685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
4695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "trace", "1", TCL_GLOBAL_ONLY);
4705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
4715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_TRIGGER
4735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "trigger", "0", TCL_GLOBAL_ONLY);
4745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
4755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "trigger", "1", TCL_GLOBAL_ONLY);
4765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
4775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_TRUNCATE_OPTIMIZATION
4795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "truncate_opt", "0", TCL_GLOBAL_ONLY);
4805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
4815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "truncate_opt", "1", TCL_GLOBAL_ONLY);
4825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
4835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_UTF16
4855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "utf16", "0", TCL_GLOBAL_ONLY);
4865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
4875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "utf16", "1", TCL_GLOBAL_ONLY);
4885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
4895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(SQLITE_OMIT_VACUUM) || defined(SQLITE_OMIT_ATTACH)
4915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "vacuum", "0", TCL_GLOBAL_ONLY);
4925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
4935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "vacuum", "1", TCL_GLOBAL_ONLY);
4945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
4955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_VIEW
4975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "view", "0", TCL_GLOBAL_ONLY);
4985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
4995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "view", "1", TCL_GLOBAL_ONLY);
5005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
5015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_VIRTUALTABLE
5035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "vtab", "0", TCL_GLOBAL_ONLY);
5045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
5055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "vtab", "1", TCL_GLOBAL_ONLY);
5065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
5075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_WAL
5095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "wal", "0", TCL_GLOBAL_ONLY);
5105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
5115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "wal", "1", TCL_GLOBAL_ONLY);
5125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
5135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_OMIT_WSD
5155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "wsd", "0", TCL_GLOBAL_ONLY);
5165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
5175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "wsd", "1", TCL_GLOBAL_ONLY);
5185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
5195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(SQLITE_ENABLE_UPDATE_DELETE_LIMIT) && !defined(SQLITE_OMIT_SUBQUERY)
5215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "update_delete_limit", "1", TCL_GLOBAL_ONLY);
5225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
5235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "update_delete_limit", "0", TCL_GLOBAL_ONLY);
5245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
5255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(SQLITE_ENABLE_UNLOCK_NOTIFY)
5275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "unlock_notify", "1", TCL_GLOBAL_ONLY);
5285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
5295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "unlock_notify", "0", TCL_GLOBAL_ONLY);
5305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
5315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_SECURE_DELETE
5335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "secure_delete", "1", TCL_GLOBAL_ONLY);
5345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
5355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "secure_delete", "0", TCL_GLOBAL_ONLY);
5365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
5375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SQLITE_MULTIPLEX_EXT_OVWR
5395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "multiplex_ext_overwrite", "1", TCL_GLOBAL_ONLY);
5405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
5415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "multiplex_ext_overwrite", "0", TCL_GLOBAL_ONLY);
5425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
5435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef YYTRACKMAXSTACKDEPTH
5455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "yytrackmaxstackdepth", "1", TCL_GLOBAL_ONLY);
5465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
5475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Tcl_SetVar2(interp, "sqlite_options", "yytrackmaxstackdepth", "0", TCL_GLOBAL_ONLY);
5485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
5495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define LINKVAR(x) { \
5515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    static const int cv_ ## x = SQLITE_ ## x; \
5525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Tcl_LinkVar(interp, "SQLITE_" #x, (char *)&(cv_ ## x), \
5535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                TCL_LINK_INT | TCL_LINK_READ_ONLY); }
5545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  LINKVAR( MAX_LENGTH );
5565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  LINKVAR( MAX_COLUMN );
5575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  LINKVAR( MAX_SQL_LENGTH );
5585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  LINKVAR( MAX_EXPR_DEPTH );
5595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  LINKVAR( MAX_COMPOUND_SELECT );
5605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  LINKVAR( MAX_VDBE_OP );
5615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  LINKVAR( MAX_FUNCTION_ARG );
5625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  LINKVAR( MAX_VARIABLE_NUMBER );
5635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  LINKVAR( MAX_PAGE_SIZE );
5645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  LINKVAR( MAX_PAGE_COUNT );
5655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  LINKVAR( MAX_LIKE_PATTERN_LENGTH );
5665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  LINKVAR( MAX_TRIGGER_DEPTH );
5675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  LINKVAR( DEFAULT_TEMP_CACHE_SIZE );
5685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  LINKVAR( DEFAULT_CACHE_SIZE );
5695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  LINKVAR( DEFAULT_PAGE_SIZE );
5705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  LINKVAR( DEFAULT_FILE_FORMAT );
5715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  LINKVAR( MAX_ATTACHED );
5725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  {
5745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    static const int cv_TEMP_STORE = SQLITE_TEMP_STORE;
5755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Tcl_LinkVar(interp, "TEMP_STORE", (char *)&(cv_TEMP_STORE),
5765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                TCL_LINK_INT | TCL_LINK_READ_ONLY);
5775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
5785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
5795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
5825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)** Register commands with the TCL interpreter.
5835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
5845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int Sqliteconfig_Init(Tcl_Interp *interp){
5855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  set_options(interp);
5865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return TCL_OK;
5875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
588