1c797d4dcSdrh /*
2c797d4dcSdrh ** 2007 May 7
3c797d4dcSdrh **
4c797d4dcSdrh ** The author disclaims copyright to this source code. In place of
5c797d4dcSdrh ** a legal notice, here is a blessing:
6c797d4dcSdrh **
7c797d4dcSdrh ** May you do good and not evil.
8c797d4dcSdrh ** May you find forgiveness for yourself and forgive others.
9c797d4dcSdrh ** May you share freely, never taking more than you give.
10c797d4dcSdrh **
11c797d4dcSdrh *************************************************************************
12c797d4dcSdrh **
13c797d4dcSdrh ** This file contains code used for testing the SQLite system.
14c797d4dcSdrh ** None of the code in this file goes into a deliverable build.
15c797d4dcSdrh **
16c797d4dcSdrh ** The focus of this file is providing the TCL testing layer
17c797d4dcSdrh ** access to compile-time constants.
18c797d4dcSdrh */
19e6a58a4eSdanielk1977
20e6a58a4eSdanielk1977 #include "sqliteLimit.h"
21e6a58a4eSdanielk1977
22c797d4dcSdrh #include "sqliteInt.h"
23f74b9e09Smistachkin #if SQLITE_OS_WIN
24f74b9e09Smistachkin # include "os_win.h"
25f74b9e09Smistachkin #endif
26f74b9e09Smistachkin
2752b1dbb5Smistachkin #if defined(INCLUDE_SQLITE_TCL_H)
2852b1dbb5Smistachkin # include "sqlite_tcl.h"
2952b1dbb5Smistachkin #else
30c797d4dcSdrh # include "tcl.h"
3152b1dbb5Smistachkin #endif
32c797d4dcSdrh #include <stdlib.h>
33c797d4dcSdrh #include <string.h>
34c797d4dcSdrh
35c797d4dcSdrh /*
360a732f59Sdanielk1977 ** Macro to stringify the results of the evaluation a pre-processor
370a732f59Sdanielk1977 ** macro. i.e. so that STRINGVALUE(SQLITE_NOMEM) -> "7".
380a732f59Sdanielk1977 */
390a732f59Sdanielk1977 #define STRINGVALUE2(x) #x
400a732f59Sdanielk1977 #define STRINGVALUE(x) STRINGVALUE2(x)
410a732f59Sdanielk1977
420a732f59Sdanielk1977 /*
43c797d4dcSdrh ** This routine sets entries in the global ::sqlite_options() array variable
44c797d4dcSdrh ** according to the compile-time configuration of the database. Test
45c797d4dcSdrh ** procedures use this to determine when tests should be omitted.
46c797d4dcSdrh */
set_options(Tcl_Interp * interp)47c797d4dcSdrh static void set_options(Tcl_Interp *interp){
480ede9ebeSdrh #if HAVE_MALLOC_USABLE_SIZE
496a8ab6d9Sdrh Tcl_SetVar2(interp, "sqlite_options", "malloc_usable_size", "1",
506a8ab6d9Sdrh TCL_GLOBAL_ONLY);
516a8ab6d9Sdrh #else
526a8ab6d9Sdrh Tcl_SetVar2(interp, "sqlite_options", "malloc_usable_size", "0",
536a8ab6d9Sdrh TCL_GLOBAL_ONLY);
546a8ab6d9Sdrh #endif
556a8ab6d9Sdrh
56c797d4dcSdrh #ifdef SQLITE_32BIT_ROWID
57c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "rowid32", "1", TCL_GLOBAL_ONLY);
58c797d4dcSdrh #else
59c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "rowid32", "0", TCL_GLOBAL_ONLY);
60c797d4dcSdrh #endif
61c797d4dcSdrh
62c797d4dcSdrh #ifdef SQLITE_CASE_SENSITIVE_LIKE
63c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options","casesensitivelike","1",TCL_GLOBAL_ONLY);
64c797d4dcSdrh #else
65c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options","casesensitivelike","0",TCL_GLOBAL_ONLY);
66c797d4dcSdrh #endif
67c797d4dcSdrh
68f5576936Slarrybr #ifdef CONFIG_SLOWDOWN_FACTOR
69f5576936Slarrybr Tcl_SetVar2(interp, "sqlite_options","configslower",
70f5576936Slarrybr STRINGVALUE(CONFIG_SLOWDOWN_FACTOR),TCL_GLOBAL_ONLY);
71f5576936Slarrybr #else
72f5576936Slarrybr Tcl_SetVar2(interp, "sqlite_options","configslower","1.0",TCL_GLOBAL_ONLY);
73f5576936Slarrybr #endif
74f5576936Slarrybr
7550287f5cSdrh #if !SQLITE_OS_WINCE && !SQLITE_OS_WINRT
76c5484654Smistachkin Tcl_SetVar2(interp, "sqlite_options", "curdir", "1", TCL_GLOBAL_ONLY);
77c5484654Smistachkin #else
78c5484654Smistachkin Tcl_SetVar2(interp, "sqlite_options", "curdir", "0", TCL_GLOBAL_ONLY);
79c5484654Smistachkin #endif
80c5484654Smistachkin
81ac1f1045Smistachkin #ifdef SQLITE_WIN32_MALLOC
82ac1f1045Smistachkin Tcl_SetVar2(interp, "sqlite_options", "win32malloc", "1", TCL_GLOBAL_ONLY);
83ac1f1045Smistachkin #else
84ac1f1045Smistachkin Tcl_SetVar2(interp, "sqlite_options", "win32malloc", "0", TCL_GLOBAL_ONLY);
85ac1f1045Smistachkin #endif
86ac1f1045Smistachkin
876338c762Sdanielk1977 #ifdef SQLITE_DEBUG
886338c762Sdanielk1977 Tcl_SetVar2(interp, "sqlite_options", "debug", "1", TCL_GLOBAL_ONLY);
896338c762Sdanielk1977 #else
906338c762Sdanielk1977 Tcl_SetVar2(interp, "sqlite_options", "debug", "0", TCL_GLOBAL_ONLY);
916338c762Sdanielk1977 #endif
926338c762Sdanielk1977
93108e5a9aSdrh #ifdef SQLITE_DEFAULT_CKPTFULLFSYNC
94108e5a9aSdrh Tcl_SetVar2(interp, "sqlite_options", "default_ckptfullfsync",
95108e5a9aSdrh SQLITE_DEFAULT_CKPTFULLFSYNC ? "1" : "0", TCL_GLOBAL_ONLY);
96108e5a9aSdrh #else
97108e5a9aSdrh Tcl_SetVar2(interp, "sqlite_options", "default_ckptfullfsync", "0", TCL_GLOBAL_ONLY);
98108e5a9aSdrh #endif
99108e5a9aSdrh
100f4ba1093Sdan #ifdef SQLITE_DIRECT_OVERFLOW_READ
101f4ba1093Sdan Tcl_SetVar2(interp, "sqlite_options", "direct_read", "1", TCL_GLOBAL_ONLY);
102f4ba1093Sdan #else
103f4ba1093Sdan Tcl_SetVar2(interp, "sqlite_options", "direct_read", "0", TCL_GLOBAL_ONLY);
104f4ba1093Sdan #endif
105f4ba1093Sdan
106c797d4dcSdrh #ifdef SQLITE_DISABLE_DIRSYNC
107c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "dirsync", "0", TCL_GLOBAL_ONLY);
108c797d4dcSdrh #else
109c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "dirsync", "1", TCL_GLOBAL_ONLY);
110c797d4dcSdrh #endif
111c797d4dcSdrh
112c797d4dcSdrh #ifdef SQLITE_DISABLE_LFS
113c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "lfs", "0", TCL_GLOBAL_ONLY);
114c797d4dcSdrh #else
115c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "lfs", "1", TCL_GLOBAL_ONLY);
116c797d4dcSdrh #endif
117c797d4dcSdrh
118b99185f2Sdrh #ifdef SQLITE_DISABLE_PAGECACHE_OVERFLOW_STATS
119b99185f2Sdrh Tcl_SetVar2(interp, "sqlite_options", "pagecache_overflow_stats","0",TCL_GLOBAL_ONLY);
120b99185f2Sdrh #else
121b99185f2Sdrh Tcl_SetVar2(interp, "sqlite_options", "pagecache_overflow_stats","1",TCL_GLOBAL_ONLY);
122b99185f2Sdrh #endif
123b99185f2Sdrh
1249b4c59faSdrh #if SQLITE_MAX_MMAP_SIZE>0
125188d4884Sdrh Tcl_SetVar2(interp, "sqlite_options", "mmap", "1", TCL_GLOBAL_ONLY);
1269b4c59faSdrh #else
1279b4c59faSdrh Tcl_SetVar2(interp, "sqlite_options", "mmap", "0", TCL_GLOBAL_ONLY);
128188d4884Sdrh #endif
129188d4884Sdrh
1300d51def2Sdan Tcl_SetVar2(interp, "sqlite_options", "worker_threads",
1310d51def2Sdan STRINGVALUE(SQLITE_MAX_WORKER_THREADS), TCL_GLOBAL_ONLY
1320d51def2Sdan );
133578e1ca8Sdan
134253c6ee1Sdan #ifdef SQLITE_MEMDEBUG
135f3a65f7eSdrh Tcl_SetVar2(interp, "sqlite_options", "memdebug", "1", TCL_GLOBAL_ONLY);
136f3a65f7eSdrh #else
137f3a65f7eSdrh Tcl_SetVar2(interp, "sqlite_options", "memdebug", "0", TCL_GLOBAL_ONLY);
138f3a65f7eSdrh #endif
139f3a65f7eSdrh
14081cc5163Sdrh #ifdef SQLITE_ENABLE_8_3_NAMES
14181cc5163Sdrh Tcl_SetVar2(interp, "sqlite_options", "8_3_names", "1", TCL_GLOBAL_ONLY);
14281cc5163Sdrh #else
14381cc5163Sdrh Tcl_SetVar2(interp, "sqlite_options", "8_3_names", "0", TCL_GLOBAL_ONLY);
14481cc5163Sdrh #endif
14581cc5163Sdrh
146f7854c73Sdrh #ifdef SQLITE_ENABLE_CURSOR_HINTS
147f7854c73Sdrh Tcl_SetVar2(interp, "sqlite_options", "cursorhints", "1", TCL_GLOBAL_ONLY);
148f7854c73Sdrh #else
149f7854c73Sdrh Tcl_SetVar2(interp, "sqlite_options", "cursorhints", "0", TCL_GLOBAL_ONLY);
150f7854c73Sdrh #endif
151f7854c73Sdrh
15203d69a68Sdrh #ifdef SQLITE_ENABLE_HIDDEN_COLUMNS
15303d69a68Sdrh Tcl_SetVar2(interp, "sqlite_options", "hiddencolumns", "1", TCL_GLOBAL_ONLY);
15403d69a68Sdrh #else
15503d69a68Sdrh Tcl_SetVar2(interp, "sqlite_options", "hiddencolumns", "0", TCL_GLOBAL_ONLY);
15603d69a68Sdrh #endif
15703d69a68Sdrh
1588d889afcSdrh #ifndef SQLITE_OMIT_DESERIALIZE
1599c6396ecSdrh Tcl_SetVar2(interp, "sqlite_options", "deserialize", "1", TCL_GLOBAL_ONLY);
160ac442f41Sdrh #else
1619c6396ecSdrh Tcl_SetVar2(interp, "sqlite_options", "deserialize", "0", TCL_GLOBAL_ONLY);
162ac442f41Sdrh #endif
163ac442f41Sdrh
164f6e904bdSdrh #ifdef SQLITE_ENABLE_MATH_FUNCTIONS
165f6e904bdSdrh Tcl_SetVar2(interp, "sqlite_options", "mathlib", "1", TCL_GLOBAL_ONLY);
166f6e904bdSdrh #else
167f6e904bdSdrh Tcl_SetVar2(interp, "sqlite_options", "mathlib", "0", TCL_GLOBAL_ONLY);
168f6e904bdSdrh #endif
169f6e904bdSdrh
1706b39c2e4Sdanielk1977 #ifdef SQLITE_ENABLE_MEMSYS3
1719c7a60dfSdrh Tcl_SetVar2(interp, "sqlite_options", "mem3", "1", TCL_GLOBAL_ONLY);
1729c7a60dfSdrh #else
1739c7a60dfSdrh Tcl_SetVar2(interp, "sqlite_options", "mem3", "0", TCL_GLOBAL_ONLY);
1749c7a60dfSdrh #endif
1759c7a60dfSdrh
1766b39c2e4Sdanielk1977 #ifdef SQLITE_ENABLE_MEMSYS5
1772d7636e2Sdrh Tcl_SetVar2(interp, "sqlite_options", "mem5", "1", TCL_GLOBAL_ONLY);
1782d7636e2Sdrh #else
1792d7636e2Sdrh Tcl_SetVar2(interp, "sqlite_options", "mem5", "0", TCL_GLOBAL_ONLY);
1802d7636e2Sdrh #endif
1812d7636e2Sdrh
182092457b1Sdrh #ifdef SQLITE_ENABLE_OFFSET_SQL_FUNC
183092457b1Sdrh Tcl_SetVar2(interp, "sqlite_options", "offset_sql_func","1",TCL_GLOBAL_ONLY);
184092457b1Sdrh #else
185092457b1Sdrh Tcl_SetVar2(interp, "sqlite_options", "offset_sql_func","0",TCL_GLOBAL_ONLY);
186092457b1Sdrh #endif
187092457b1Sdrh
1889b1c62d4Sdrh #ifdef SQLITE_ENABLE_PREUPDATE_HOOK
1899b1c62d4Sdrh Tcl_SetVar2(interp, "sqlite_options", "preupdate", "1", TCL_GLOBAL_ONLY);
1909b1c62d4Sdrh #else
1919b1c62d4Sdrh Tcl_SetVar2(interp, "sqlite_options", "preupdate", "0", TCL_GLOBAL_ONLY);
1929b1c62d4Sdrh #endif
1939b1c62d4Sdrh
19468d28ea4Sdrh #ifdef SQLITE_ENABLE_SNAPSHOT
19568d28ea4Sdrh Tcl_SetVar2(interp, "sqlite_options", "snapshot", "1", TCL_GLOBAL_ONLY);
19668d28ea4Sdrh #else
19768d28ea4Sdrh Tcl_SetVar2(interp, "sqlite_options", "snapshot", "0", TCL_GLOBAL_ONLY);
19868d28ea4Sdrh #endif
19968d28ea4Sdrh
20018472fa7Sdrh #ifdef SQLITE_MUTEX_OMIT
20118472fa7Sdrh Tcl_SetVar2(interp, "sqlite_options", "mutex", "0", TCL_GLOBAL_ONLY);
20218472fa7Sdrh #else
20318472fa7Sdrh Tcl_SetVar2(interp, "sqlite_options", "mutex", "1", TCL_GLOBAL_ONLY);
20418472fa7Sdrh #endif
20518472fa7Sdrh
2067329ed9bSdan #ifdef SQLITE_MUTEX_NOOP
2077329ed9bSdan Tcl_SetVar2(interp, "sqlite_options", "mutex_noop", "1", TCL_GLOBAL_ONLY);
2087329ed9bSdan #else
2097329ed9bSdan Tcl_SetVar2(interp, "sqlite_options", "mutex_noop", "0", TCL_GLOBAL_ONLY);
2107329ed9bSdan #endif
2117329ed9bSdan
212c797d4dcSdrh #ifdef SQLITE_OMIT_ALTERTABLE
213c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "altertable", "0", TCL_GLOBAL_ONLY);
214c797d4dcSdrh #else
215c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "altertable", "1", TCL_GLOBAL_ONLY);
216c797d4dcSdrh #endif
217c797d4dcSdrh
218c797d4dcSdrh #ifdef SQLITE_OMIT_ANALYZE
219c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "analyze", "0", TCL_GLOBAL_ONLY);
220c797d4dcSdrh #else
221c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "analyze", "1", TCL_GLOBAL_ONLY);
222c797d4dcSdrh #endif
223c797d4dcSdrh
224b391b944Sdan #ifdef SQLITE_ENABLE_API_ARMOR
225b391b944Sdan Tcl_SetVar2(interp, "sqlite_options", "api_armor", "1", TCL_GLOBAL_ONLY);
226b391b944Sdan #else
227b391b944Sdan Tcl_SetVar2(interp, "sqlite_options", "api_armor", "0", TCL_GLOBAL_ONLY);
228b391b944Sdan #endif
229b391b944Sdan
230d6b9386cSdrh #ifdef SQLITE_ENABLE_ATOMIC_WRITE
231d6b9386cSdrh Tcl_SetVar2(interp, "sqlite_options", "atomicwrite", "1", TCL_GLOBAL_ONLY);
232d6b9386cSdrh #else
233d6b9386cSdrh Tcl_SetVar2(interp, "sqlite_options", "atomicwrite", "0", TCL_GLOBAL_ONLY);
234d6b9386cSdrh #endif
235d6b9386cSdrh
2361929cc0dSlarrybr #ifdef SQLITE_ENABLE_GEOPOLY
2371929cc0dSlarrybr Tcl_SetVar2(interp, "sqlite_options", "geopoly", "1", TCL_GLOBAL_ONLY);
2381929cc0dSlarrybr #else
2391929cc0dSlarrybr Tcl_SetVar2(interp, "sqlite_options", "geopoly", "0", TCL_GLOBAL_ONLY);
2401929cc0dSlarrybr #endif
2411929cc0dSlarrybr
242*dedd51aeSdrh #ifndef SQLITE_OMIT_JSON
243c306e08aSdrh Tcl_SetVar2(interp, "sqlite_options", "json1", "1", TCL_GLOBAL_ONLY);
244c306e08aSdrh #else
245c306e08aSdrh Tcl_SetVar2(interp, "sqlite_options", "json1", "0", TCL_GLOBAL_ONLY);
246c306e08aSdrh #endif
247c306e08aSdrh
248efeaec36Sdrh Tcl_SetVar2(interp, "sqlite_options", "has_codec", "0", TCL_GLOBAL_ONLY);
249efeaec36Sdrh
25041d2e66eSdrh #ifdef SQLITE_LIKE_DOESNT_MATCH_BLOBS
25141d2e66eSdrh Tcl_SetVar2(interp, "sqlite_options", "like_match_blobs", "0", TCL_GLOBAL_ONLY);
25241d2e66eSdrh #else
25341d2e66eSdrh Tcl_SetVar2(interp, "sqlite_options", "like_match_blobs", "1", TCL_GLOBAL_ONLY);
25441d2e66eSdrh #endif
25541d2e66eSdrh
256c797d4dcSdrh #ifdef SQLITE_OMIT_ATTACH
257c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "attach", "0", TCL_GLOBAL_ONLY);
258c797d4dcSdrh #else
259c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "attach", "1", TCL_GLOBAL_ONLY);
260c797d4dcSdrh #endif
261c797d4dcSdrh
262c797d4dcSdrh #ifdef SQLITE_OMIT_AUTHORIZATION
263c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "auth", "0", TCL_GLOBAL_ONLY);
264c797d4dcSdrh #else
265c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "auth", "1", TCL_GLOBAL_ONLY);
266c797d4dcSdrh #endif
267c797d4dcSdrh
268c797d4dcSdrh #ifdef SQLITE_OMIT_AUTOINCREMENT
269c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "autoinc", "0", TCL_GLOBAL_ONLY);
270c797d4dcSdrh #else
271c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "autoinc", "1", TCL_GLOBAL_ONLY);
272c797d4dcSdrh #endif
273c797d4dcSdrh
274c6339081Sdrh #ifdef SQLITE_OMIT_AUTOMATIC_INDEX
275c6339081Sdrh Tcl_SetVar2(interp, "sqlite_options", "autoindex", "0", TCL_GLOBAL_ONLY);
276c6339081Sdrh #else
277c6339081Sdrh Tcl_SetVar2(interp, "sqlite_options", "autoindex", "1", TCL_GLOBAL_ONLY);
278c6339081Sdrh #endif
279c6339081Sdrh
280602acb48Sdrh #ifdef SQLITE_OMIT_AUTORESET
281602acb48Sdrh Tcl_SetVar2(interp, "sqlite_options", "autoreset", "0", TCL_GLOBAL_ONLY);
282602acb48Sdrh #else
283602acb48Sdrh Tcl_SetVar2(interp, "sqlite_options", "autoreset", "1", TCL_GLOBAL_ONLY);
284602acb48Sdrh #endif
285602acb48Sdrh
286c797d4dcSdrh #ifdef SQLITE_OMIT_AUTOVACUUM
287c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "autovacuum", "0", TCL_GLOBAL_ONLY);
288c797d4dcSdrh #else
289c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "autovacuum", "1", TCL_GLOBAL_ONLY);
290c797d4dcSdrh #endif /* SQLITE_OMIT_AUTOVACUUM */
291f8b10a85Sdanielk1977 #if !defined(SQLITE_DEFAULT_AUTOVACUUM)
292c797d4dcSdrh Tcl_SetVar2(interp,"sqlite_options","default_autovacuum","0",TCL_GLOBAL_ONLY);
293c797d4dcSdrh #else
294f8b10a85Sdanielk1977 Tcl_SetVar2(interp, "sqlite_options", "default_autovacuum",
295f8b10a85Sdanielk1977 STRINGVALUE(SQLITE_DEFAULT_AUTOVACUUM), TCL_GLOBAL_ONLY);
296c797d4dcSdrh #endif
297c797d4dcSdrh
298c797d4dcSdrh #ifdef SQLITE_OMIT_BETWEEN_OPTIMIZATION
299c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "between_opt", "0", TCL_GLOBAL_ONLY);
300c797d4dcSdrh #else
301c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "between_opt", "1", TCL_GLOBAL_ONLY);
302c797d4dcSdrh #endif
303c797d4dcSdrh
304d12602a9Sdrh #ifdef SQLITE_UNTESTABLE
3053088d59eSdrh Tcl_SetVar2(interp, "sqlite_options", "builtin_test", "0", TCL_GLOBAL_ONLY);
3063088d59eSdrh #else
3073088d59eSdrh Tcl_SetVar2(interp, "sqlite_options", "builtin_test", "1", TCL_GLOBAL_ONLY);
3083088d59eSdrh #endif
3093088d59eSdrh
310c797d4dcSdrh #ifdef SQLITE_OMIT_BLOB_LITERAL
311c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "bloblit", "0", TCL_GLOBAL_ONLY);
312c797d4dcSdrh #else
313c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "bloblit", "1", TCL_GLOBAL_ONLY);
314c797d4dcSdrh #endif
315c797d4dcSdrh
316c797d4dcSdrh #ifdef SQLITE_OMIT_CAST
317c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "cast", "0", TCL_GLOBAL_ONLY);
318c797d4dcSdrh #else
319c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "cast", "1", TCL_GLOBAL_ONLY);
320c797d4dcSdrh #endif
321c797d4dcSdrh
322c797d4dcSdrh #ifdef SQLITE_OMIT_CHECK
323c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "check", "0", TCL_GLOBAL_ONLY);
324c797d4dcSdrh #else
325c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "check", "1", TCL_GLOBAL_ONLY);
326c797d4dcSdrh #endif
327c797d4dcSdrh
328eede6a53Sdan #ifdef SQLITE_OMIT_CTE
329eede6a53Sdan Tcl_SetVar2(interp, "sqlite_options", "cte", "0", TCL_GLOBAL_ONLY);
330eede6a53Sdan #else
331eede6a53Sdan Tcl_SetVar2(interp, "sqlite_options", "cte", "1", TCL_GLOBAL_ONLY);
332eede6a53Sdan #endif
333eede6a53Sdan
334c797d4dcSdrh #ifdef SQLITE_ENABLE_COLUMN_METADATA
335c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "columnmetadata", "1", TCL_GLOBAL_ONLY);
336c797d4dcSdrh #else
337c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "columnmetadata", "0", TCL_GLOBAL_ONLY);
338c797d4dcSdrh #endif
339c797d4dcSdrh
3403b2a3fa4Sdrh #ifdef SQLITE_ENABLE_OVERSIZE_CELL_CHECK
3413b2a3fa4Sdrh Tcl_SetVar2(interp, "sqlite_options", "oversize_cell_check", "1",
3423b2a3fa4Sdrh TCL_GLOBAL_ONLY);
3433b2a3fa4Sdrh #else
3443b2a3fa4Sdrh Tcl_SetVar2(interp, "sqlite_options", "oversize_cell_check", "0",
3453b2a3fa4Sdrh TCL_GLOBAL_ONLY);
3463b2a3fa4Sdrh #endif
3473b2a3fa4Sdrh
348915c8bdbSshaneh #ifdef SQLITE_OMIT_COMPILEOPTION_DIAGS
349915c8bdbSshaneh Tcl_SetVar2(interp, "sqlite_options", "compileoption_diags", "0", TCL_GLOBAL_ONLY);
350915c8bdbSshaneh #else
351915c8bdbSshaneh Tcl_SetVar2(interp, "sqlite_options", "compileoption_diags", "1", TCL_GLOBAL_ONLY);
352915c8bdbSshaneh #endif
3533b2a3fa4Sdrh
354c797d4dcSdrh #ifdef SQLITE_OMIT_COMPLETE
355c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "complete", "0", TCL_GLOBAL_ONLY);
356c797d4dcSdrh #else
357c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "complete", "1", TCL_GLOBAL_ONLY);
358c797d4dcSdrh #endif
359c797d4dcSdrh
360c797d4dcSdrh #ifdef SQLITE_OMIT_COMPOUND_SELECT
361c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "compound", "0", TCL_GLOBAL_ONLY);
362c797d4dcSdrh #else
363c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "compound", "1", TCL_GLOBAL_ONLY);
364c797d4dcSdrh #endif
365c797d4dcSdrh
366c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "conflict", "1", TCL_GLOBAL_ONLY);
367c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "crashtest", "1", TCL_GLOBAL_ONLY);
368c797d4dcSdrh
369c797d4dcSdrh #ifdef SQLITE_OMIT_DATETIME_FUNCS
370c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "datetime", "0", TCL_GLOBAL_ONLY);
371c797d4dcSdrh #else
372c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "datetime", "1", TCL_GLOBAL_ONLY);
373c797d4dcSdrh #endif
374c797d4dcSdrh
3753f913576Sdrh #ifdef SQLITE_OMIT_DECLTYPE
3763f913576Sdrh Tcl_SetVar2(interp, "sqlite_options", "decltype", "0", TCL_GLOBAL_ONLY);
3773f913576Sdrh #else
3783f913576Sdrh Tcl_SetVar2(interp, "sqlite_options", "decltype", "1", TCL_GLOBAL_ONLY);
3793f913576Sdrh #endif
3803f913576Sdrh
381eec556d3Sshane #ifdef SQLITE_OMIT_DEPRECATED
382eec556d3Sshane Tcl_SetVar2(interp, "sqlite_options", "deprecated", "0", TCL_GLOBAL_ONLY);
383eec556d3Sshane #else
384eec556d3Sshane Tcl_SetVar2(interp, "sqlite_options", "deprecated", "1", TCL_GLOBAL_ONLY);
385eec556d3Sshane #endif
386eec556d3Sshane
387c797d4dcSdrh #ifdef SQLITE_OMIT_DISKIO
388c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "diskio", "0", TCL_GLOBAL_ONLY);
389c797d4dcSdrh #else
390c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "diskio", "1", TCL_GLOBAL_ONLY);
391c797d4dcSdrh #endif
392c797d4dcSdrh
393c797d4dcSdrh #ifdef SQLITE_OMIT_EXPLAIN
394c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "explain", "0", TCL_GLOBAL_ONLY);
395c797d4dcSdrh #else
396c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "explain", "1", TCL_GLOBAL_ONLY);
397c797d4dcSdrh #endif
398c797d4dcSdrh
399c797d4dcSdrh #ifdef SQLITE_OMIT_FLOATING_POINT
400c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "floatingpoint", "0", TCL_GLOBAL_ONLY);
401c797d4dcSdrh #else
402c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "floatingpoint", "1", TCL_GLOBAL_ONLY);
403c797d4dcSdrh #endif
404c797d4dcSdrh
405c797d4dcSdrh #ifdef SQLITE_OMIT_FOREIGN_KEY
406c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "foreignkey", "0", TCL_GLOBAL_ONLY);
407c797d4dcSdrh #else
408c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "foreignkey", "1", TCL_GLOBAL_ONLY);
409c797d4dcSdrh #endif
410c797d4dcSdrh
411c797d4dcSdrh #ifdef SQLITE_ENABLE_FTS1
412c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "fts1", "1", TCL_GLOBAL_ONLY);
413c797d4dcSdrh #else
414c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "fts1", "0", TCL_GLOBAL_ONLY);
415c797d4dcSdrh #endif
416c797d4dcSdrh
417c797d4dcSdrh #ifdef SQLITE_ENABLE_FTS2
418c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "fts2", "1", TCL_GLOBAL_ONLY);
419c797d4dcSdrh #else
420c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "fts2", "0", TCL_GLOBAL_ONLY);
421c797d4dcSdrh #endif
422c797d4dcSdrh
423a2451e22Sdrh #ifdef SQLITE_ENABLE_FTS3
424a2451e22Sdrh Tcl_SetVar2(interp, "sqlite_options", "fts3", "1", TCL_GLOBAL_ONLY);
425a2451e22Sdrh #else
426a2451e22Sdrh Tcl_SetVar2(interp, "sqlite_options", "fts3", "0", TCL_GLOBAL_ONLY);
427a2451e22Sdrh #endif
428a2451e22Sdrh
42948d70140Sdan #ifdef SQLITE_ENABLE_FTS5
43048d70140Sdan Tcl_SetVar2(interp, "sqlite_options", "fts5", "1", TCL_GLOBAL_ONLY);
43148d70140Sdan #else
43248d70140Sdan Tcl_SetVar2(interp, "sqlite_options", "fts5", "0", TCL_GLOBAL_ONLY);
43348d70140Sdan #endif
43448d70140Sdan
4352eaf03d7Sdan #if defined(SQLITE_ENABLE_FTS3) && !defined(SQLITE_DISABLE_FTS3_UNICODE)
4367946c530Sdan Tcl_SetVar2(interp, "sqlite_options", "fts3_unicode", "1", TCL_GLOBAL_ONLY);
4372c897e3eSdan #else
4382c897e3eSdan Tcl_SetVar2(interp, "sqlite_options", "fts3_unicode", "0", TCL_GLOBAL_ONLY);
4397946c530Sdan #endif
4407946c530Sdan
4414dc3d73dSdan #ifdef SQLITE_DISABLE_FTS4_DEFERRED
4424dc3d73dSdan Tcl_SetVar2(interp, "sqlite_options", "fts4_deferred", "0", TCL_GLOBAL_ONLY);
4434dc3d73dSdan #else
4444dc3d73dSdan Tcl_SetVar2(interp, "sqlite_options", "fts4_deferred", "1", TCL_GLOBAL_ONLY);
4454dc3d73dSdan #endif
4464dc3d73dSdan
4478225f5acSshane #ifdef SQLITE_OMIT_GET_TABLE
4488225f5acSshane Tcl_SetVar2(interp, "sqlite_options", "gettable", "0", TCL_GLOBAL_ONLY);
4498225f5acSshane #else
4508225f5acSshane Tcl_SetVar2(interp, "sqlite_options", "gettable", "1", TCL_GLOBAL_ONLY);
4518225f5acSshane #endif
4528225f5acSshane
453c797d4dcSdrh #ifdef SQLITE_ENABLE_ICU
454c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "icu", "1", TCL_GLOBAL_ONLY);
455c797d4dcSdrh #else
456c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "icu", "0", TCL_GLOBAL_ONLY);
457c797d4dcSdrh #endif
458c797d4dcSdrh
45921540ae4Sdan #ifdef SQLITE_ENABLE_ICU_COLLATIONS
46021540ae4Sdan Tcl_SetVar2(interp, "sqlite_options", "icu_collations", "1", TCL_GLOBAL_ONLY);
46121540ae4Sdan #else
46221540ae4Sdan Tcl_SetVar2(interp, "sqlite_options", "icu_collations", "0", TCL_GLOBAL_ONLY);
46321540ae4Sdan #endif
46421540ae4Sdan
465c797d4dcSdrh #ifdef SQLITE_OMIT_INCRBLOB
466c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "incrblob", "0", TCL_GLOBAL_ONLY);
467c797d4dcSdrh #else
468c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "incrblob", "1", TCL_GLOBAL_ONLY);
469c797d4dcSdrh #endif /* SQLITE_OMIT_AUTOVACUUM */
470c797d4dcSdrh
471c797d4dcSdrh #ifdef SQLITE_OMIT_INTEGRITY_CHECK
472c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "integrityck", "0", TCL_GLOBAL_ONLY);
473c797d4dcSdrh #else
474c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "integrityck", "1", TCL_GLOBAL_ONLY);
475c797d4dcSdrh #endif
476c797d4dcSdrh
477c797d4dcSdrh #if defined(SQLITE_DEFAULT_FILE_FORMAT) && SQLITE_DEFAULT_FILE_FORMAT==1
478c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "legacyformat", "1", TCL_GLOBAL_ONLY);
479c797d4dcSdrh #else
480c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "legacyformat", "0", TCL_GLOBAL_ONLY);
481c797d4dcSdrh #endif
482c797d4dcSdrh
483c797d4dcSdrh #ifdef SQLITE_OMIT_LIKE_OPTIMIZATION
484c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "like_opt", "0", TCL_GLOBAL_ONLY);
485c797d4dcSdrh #else
486c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "like_opt", "1", TCL_GLOBAL_ONLY);
487c797d4dcSdrh #endif
488c797d4dcSdrh
489c797d4dcSdrh #ifdef SQLITE_OMIT_LOAD_EXTENSION
490c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "load_ext", "0", TCL_GLOBAL_ONLY);
491c797d4dcSdrh #else
492c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "load_ext", "1", TCL_GLOBAL_ONLY);
493c797d4dcSdrh #endif
494c797d4dcSdrh
49566147c97Sdrh #ifdef SQLITE_OMIT_LOCALTIME
49666147c97Sdrh Tcl_SetVar2(interp, "sqlite_options", "localtime", "0", TCL_GLOBAL_ONLY);
49766147c97Sdrh #else
49866147c97Sdrh Tcl_SetVar2(interp, "sqlite_options", "localtime", "1", TCL_GLOBAL_ONLY);
49966147c97Sdrh #endif
50066147c97Sdrh
5018867e38aSdrh #ifdef SQLITE_OMIT_LOOKASIDE
5028867e38aSdrh Tcl_SetVar2(interp, "sqlite_options", "lookaside", "0", TCL_GLOBAL_ONLY);
5038867e38aSdrh #else
5048867e38aSdrh Tcl_SetVar2(interp, "sqlite_options", "lookaside", "1", TCL_GLOBAL_ONLY);
5058867e38aSdrh #endif
5068867e38aSdrh
507a7fba4b0Sdrh Tcl_SetVar2(interp, "sqlite_options", "long_double",
508a7fba4b0Sdrh sizeof(LONGDOUBLE_TYPE)>sizeof(double) ? "1" : "0",
509a7fba4b0Sdrh TCL_GLOBAL_ONLY);
510a7fba4b0Sdrh
511c797d4dcSdrh #ifdef SQLITE_OMIT_MEMORYDB
512c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "memorydb", "0", TCL_GLOBAL_ONLY);
513c797d4dcSdrh #else
514c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "memorydb", "1", TCL_GLOBAL_ONLY);
515c797d4dcSdrh #endif
516c797d4dcSdrh
517c797d4dcSdrh #ifdef SQLITE_ENABLE_MEMORY_MANAGEMENT
518c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "memorymanage", "1", TCL_GLOBAL_ONLY);
519c797d4dcSdrh #else
520c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "memorymanage", "0", TCL_GLOBAL_ONLY);
521c797d4dcSdrh #endif
522c797d4dcSdrh
523689ab897Sdan Tcl_SetVar2(interp, "sqlite_options", "mergesort", "1", TCL_GLOBAL_ONLY);
524689ab897Sdan
5251db7db1fSdan #ifdef SQLITE_ENABLE_NULL_TRIM
5261db7db1fSdan Tcl_SetVar2(interp, "sqlite_options", "null_trim", "1", TCL_GLOBAL_ONLY);
5271db7db1fSdan #else
5281db7db1fSdan Tcl_SetVar2(interp, "sqlite_options", "null_trim", "0", TCL_GLOBAL_ONLY);
5291db7db1fSdan #endif
5301db7db1fSdan
531c797d4dcSdrh #ifdef SQLITE_OMIT_OR_OPTIMIZATION
532c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "or_opt", "0", TCL_GLOBAL_ONLY);
533c797d4dcSdrh #else
534c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "or_opt", "1", TCL_GLOBAL_ONLY);
535c797d4dcSdrh #endif
536c797d4dcSdrh
537cfb8f8d6Sdrh #ifdef SQLITE_ENABLE_RBU
538cfb8f8d6Sdrh Tcl_SetVar2(interp, "sqlite_options", "rbu", "1", TCL_GLOBAL_ONLY);
5397bf9ec1cSdan #else
540cfb8f8d6Sdrh Tcl_SetVar2(interp, "sqlite_options", "rbu", "0", TCL_GLOBAL_ONLY);
5417bf9ec1cSdan #endif
5427bf9ec1cSdan
543c797d4dcSdrh #ifdef SQLITE_OMIT_PAGER_PRAGMAS
544c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "pager_pragmas", "0", TCL_GLOBAL_ONLY);
545c797d4dcSdrh #else
546c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "pager_pragmas", "1", TCL_GLOBAL_ONLY);
547c797d4dcSdrh #endif
548c797d4dcSdrh
549c797d4dcSdrh #if defined(SQLITE_OMIT_PRAGMA) || defined(SQLITE_OMIT_FLAG_PRAGMAS)
550c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "pragma", "0", TCL_GLOBAL_ONLY);
551c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "integrityck", "0", TCL_GLOBAL_ONLY);
552c797d4dcSdrh #else
553c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "pragma", "1", TCL_GLOBAL_ONLY);
554c797d4dcSdrh #endif
555c797d4dcSdrh
556c797d4dcSdrh #ifdef SQLITE_OMIT_PROGRESS_CALLBACK
557c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "progress", "0", TCL_GLOBAL_ONLY);
558c797d4dcSdrh #else
559c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "progress", "1", TCL_GLOBAL_ONLY);
560c797d4dcSdrh #endif
561c797d4dcSdrh
562c797d4dcSdrh #ifdef SQLITE_OMIT_REINDEX
563c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "reindex", "0", TCL_GLOBAL_ONLY);
564c797d4dcSdrh #else
565c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "reindex", "1", TCL_GLOBAL_ONLY);
566c797d4dcSdrh #endif
567c797d4dcSdrh
568ebaecc14Sdanielk1977 #ifdef SQLITE_ENABLE_RTREE
569ebaecc14Sdanielk1977 Tcl_SetVar2(interp, "sqlite_options", "rtree", "1", TCL_GLOBAL_ONLY);
570ebaecc14Sdanielk1977 #else
571ebaecc14Sdanielk1977 Tcl_SetVar2(interp, "sqlite_options", "rtree", "0", TCL_GLOBAL_ONLY);
572ebaecc14Sdanielk1977 #endif
573ebaecc14Sdanielk1977
574f439fbdaSdrh #ifdef SQLITE_RTREE_INT_ONLY
575f439fbdaSdrh Tcl_SetVar2(interp, "sqlite_options", "rtree_int_only", "1", TCL_GLOBAL_ONLY);
576f439fbdaSdrh #else
577f439fbdaSdrh Tcl_SetVar2(interp, "sqlite_options", "rtree_int_only", "0", TCL_GLOBAL_ONLY);
578f439fbdaSdrh #endif
579f439fbdaSdrh
580c797d4dcSdrh #ifdef SQLITE_OMIT_SCHEMA_PRAGMAS
581c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "schema_pragmas", "0", TCL_GLOBAL_ONLY);
582c797d4dcSdrh #else
583c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "schema_pragmas", "1", TCL_GLOBAL_ONLY);
584c797d4dcSdrh #endif
585c797d4dcSdrh
586c797d4dcSdrh #ifdef SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS
587c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "schema_version", "0", TCL_GLOBAL_ONLY);
588c797d4dcSdrh #else
589c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "schema_version", "1", TCL_GLOBAL_ONLY);
590c797d4dcSdrh #endif
591c797d4dcSdrh
592f1cacb76Sdan #if defined(SQLITE_ENABLE_SESSION) && defined(SQLITE_ENABLE_PREUPDATE_HOOK)
5937cf7df7dSdan Tcl_SetVar2(interp, "sqlite_options", "session", "1", TCL_GLOBAL_ONLY);
5947cf7df7dSdan #else
5957cf7df7dSdan Tcl_SetVar2(interp, "sqlite_options", "session", "0", TCL_GLOBAL_ONLY);
5967cf7df7dSdan #endif
5977cf7df7dSdan
598f52bb8d3Sdan #ifdef SQLITE_ENABLE_STAT4
599f52bb8d3Sdan Tcl_SetVar2(interp, "sqlite_options", "stat4", "1", TCL_GLOBAL_ONLY);
600faacf17cSdrh #else
601f52bb8d3Sdan Tcl_SetVar2(interp, "sqlite_options", "stat4", "0", TCL_GLOBAL_ONLY);
602faacf17cSdrh #endif
603c6603af7Sdrh #if defined(SQLITE_ENABLE_STMTVTAB) && !defined(SQLITE_OMIT_VIRTUALTABLE)
604c6603af7Sdrh Tcl_SetVar2(interp, "sqlite_options", "stmtvtab", "1", TCL_GLOBAL_ONLY);
605c7998331Sdrh #else
606c6603af7Sdrh Tcl_SetVar2(interp, "sqlite_options", "stmtvtab", "0", TCL_GLOBAL_ONLY);
607c7998331Sdrh #endif
608c7998331Sdrh
609e2f771b0Sdan #ifdef SQLITE_ENABLE_STMT_SCANSTATUS
610e2f771b0Sdan Tcl_SetVar2(interp, "sqlite_options", "scanstatus", "1", TCL_GLOBAL_ONLY);
611e2f771b0Sdan #else
612e2f771b0Sdan Tcl_SetVar2(interp, "sqlite_options", "scanstatus", "0", TCL_GLOBAL_ONLY);
613e2f771b0Sdan #endif
614e2f771b0Sdan
6159b35ea62Sdrh #if !defined(SQLITE_ENABLE_LOCKING_STYLE)
616d2cb50b7Sdrh # if defined(__APPLE__)
6179b35ea62Sdrh # define SQLITE_ENABLE_LOCKING_STYLE 1
6189b35ea62Sdrh # else
6199b35ea62Sdrh # define SQLITE_ENABLE_LOCKING_STYLE 0
6209b35ea62Sdrh # endif
6219b35ea62Sdrh #endif
622d2cb50b7Sdrh #if SQLITE_ENABLE_LOCKING_STYLE && defined(__APPLE__)
623aebf413dSaswift Tcl_SetVar2(interp,"sqlite_options","lock_proxy_pragmas","1",TCL_GLOBAL_ONLY);
624aebf413dSaswift #else
625aebf413dSaswift Tcl_SetVar2(interp,"sqlite_options","lock_proxy_pragmas","0",TCL_GLOBAL_ONLY);
626aebf413dSaswift #endif
627838cce43Sdanielk1977 #if defined(SQLITE_PREFER_PROXY_LOCKING) && defined(__APPLE__)
628838cce43Sdanielk1977 Tcl_SetVar2(interp,"sqlite_options","prefer_proxy_locking","1",TCL_GLOBAL_ONLY);
629838cce43Sdanielk1977 #else
630838cce43Sdanielk1977 Tcl_SetVar2(interp,"sqlite_options","prefer_proxy_locking","0",TCL_GLOBAL_ONLY);
631838cce43Sdanielk1977 #endif
632aebf413dSaswift
633aebf413dSaswift
634c797d4dcSdrh #ifdef SQLITE_OMIT_SHARED_CACHE
635c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "shared_cache", "0", TCL_GLOBAL_ONLY);
636c797d4dcSdrh #else
637c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "shared_cache", "1", TCL_GLOBAL_ONLY);
638c797d4dcSdrh #endif
639c797d4dcSdrh
640c797d4dcSdrh #ifdef SQLITE_OMIT_SUBQUERY
641c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "subquery", "0", TCL_GLOBAL_ONLY);
642c797d4dcSdrh #else
643c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "subquery", "1", TCL_GLOBAL_ONLY);
644c797d4dcSdrh #endif
645c797d4dcSdrh
646c797d4dcSdrh #ifdef SQLITE_OMIT_TCL_VARIABLE
647c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "tclvar", "0", TCL_GLOBAL_ONLY);
648c797d4dcSdrh #else
649c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "tclvar", "1", TCL_GLOBAL_ONLY);
650c797d4dcSdrh #endif
651c797d4dcSdrh
6520a732f59Sdanielk1977 Tcl_SetVar2(interp, "sqlite_options", "threadsafe",
653b99185f2Sdrh SQLITE_THREADSAFE ? "1" : "0", TCL_GLOBAL_ONLY);
654b99185f2Sdrh Tcl_SetVar2(interp, "sqlite_options", "threadsafe1",
655b99185f2Sdrh SQLITE_THREADSAFE==1 ? "1" : "0", TCL_GLOBAL_ONLY);
656b99185f2Sdrh Tcl_SetVar2(interp, "sqlite_options", "threadsafe2",
657b99185f2Sdrh SQLITE_THREADSAFE==2 ? "1" : "0", TCL_GLOBAL_ONLY);
6580a732f59Sdanielk1977 assert( sqlite3_threadsafe()==SQLITE_THREADSAFE );
659c797d4dcSdrh
660f8cecdabSdrh #ifdef SQLITE_OMIT_TEMPDB
661f8cecdabSdrh Tcl_SetVar2(interp, "sqlite_options", "tempdb", "0", TCL_GLOBAL_ONLY);
662f8cecdabSdrh #else
663f8cecdabSdrh Tcl_SetVar2(interp, "sqlite_options", "tempdb", "1", TCL_GLOBAL_ONLY);
664f8cecdabSdrh #endif
665f8cecdabSdrh
666c797d4dcSdrh #ifdef SQLITE_OMIT_TRACE
667c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "trace", "0", TCL_GLOBAL_ONLY);
668c797d4dcSdrh #else
669c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "trace", "1", TCL_GLOBAL_ONLY);
670c797d4dcSdrh #endif
671c797d4dcSdrh
672c797d4dcSdrh #ifdef SQLITE_OMIT_TRIGGER
673c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "trigger", "0", TCL_GLOBAL_ONLY);
674c797d4dcSdrh #else
675c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "trigger", "1", TCL_GLOBAL_ONLY);
676c797d4dcSdrh #endif
677c797d4dcSdrh
6784d9a7bf9Sdrh #ifdef SQLITE_OMIT_TRUNCATE_OPTIMIZATION
679f8cecdabSdrh Tcl_SetVar2(interp, "sqlite_options", "truncate_opt", "0", TCL_GLOBAL_ONLY);
680c797d4dcSdrh #else
681f8cecdabSdrh Tcl_SetVar2(interp, "sqlite_options", "truncate_opt", "1", TCL_GLOBAL_ONLY);
682c797d4dcSdrh #endif
683c797d4dcSdrh
684c797d4dcSdrh #ifdef SQLITE_OMIT_UTF16
685c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "utf16", "0", TCL_GLOBAL_ONLY);
686c797d4dcSdrh #else
687c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "utf16", "1", TCL_GLOBAL_ONLY);
688c797d4dcSdrh #endif
689c797d4dcSdrh
690c797d4dcSdrh #if defined(SQLITE_OMIT_VACUUM) || defined(SQLITE_OMIT_ATTACH)
691c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "vacuum", "0", TCL_GLOBAL_ONLY);
692c797d4dcSdrh #else
693c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "vacuum", "1", TCL_GLOBAL_ONLY);
694c797d4dcSdrh #endif
695c797d4dcSdrh
696c797d4dcSdrh #ifdef SQLITE_OMIT_VIEW
697c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "view", "0", TCL_GLOBAL_ONLY);
698c797d4dcSdrh #else
699c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "view", "1", TCL_GLOBAL_ONLY);
700c797d4dcSdrh #endif
701c797d4dcSdrh
702c797d4dcSdrh #ifdef SQLITE_OMIT_VIRTUALTABLE
703c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "vtab", "0", TCL_GLOBAL_ONLY);
704c797d4dcSdrh #else
705c797d4dcSdrh Tcl_SetVar2(interp, "sqlite_options", "vtab", "1", TCL_GLOBAL_ONLY);
706c797d4dcSdrh #endif
707c797d4dcSdrh
7085cf53537Sdan #ifdef SQLITE_OMIT_WAL
7095cf53537Sdan Tcl_SetVar2(interp, "sqlite_options", "wal", "0", TCL_GLOBAL_ONLY);
7105cf53537Sdan #else
7115cf53537Sdan Tcl_SetVar2(interp, "sqlite_options", "wal", "1", TCL_GLOBAL_ONLY);
7125cf53537Sdan #endif
7135cf53537Sdan
71478f82d1eSdrh #ifdef SQLITE_OMIT_WSD
71578f82d1eSdrh Tcl_SetVar2(interp, "sqlite_options", "wsd", "0", TCL_GLOBAL_ONLY);
71678f82d1eSdrh #else
71778f82d1eSdrh Tcl_SetVar2(interp, "sqlite_options", "wsd", "1", TCL_GLOBAL_ONLY);
71878f82d1eSdrh #endif
71978f82d1eSdrh
720273f619bSshane #if defined(SQLITE_ENABLE_UPDATE_DELETE_LIMIT) && !defined(SQLITE_OMIT_SUBQUERY)
721273f619bSshane Tcl_SetVar2(interp, "sqlite_options", "update_delete_limit", "1", TCL_GLOBAL_ONLY);
722273f619bSshane #else
723273f619bSshane Tcl_SetVar2(interp, "sqlite_options", "update_delete_limit", "0", TCL_GLOBAL_ONLY);
724273f619bSshane #endif
725273f619bSshane
726404ca075Sdanielk1977 #if defined(SQLITE_ENABLE_UNLOCK_NOTIFY)
727404ca075Sdanielk1977 Tcl_SetVar2(interp, "sqlite_options", "unlock_notify", "1", TCL_GLOBAL_ONLY);
728404ca075Sdanielk1977 #else
729404ca075Sdanielk1977 Tcl_SetVar2(interp, "sqlite_options", "unlock_notify", "0", TCL_GLOBAL_ONLY);
730404ca075Sdanielk1977 #endif
731404ca075Sdanielk1977
732cb45eef4Sdrh #ifdef SQLITE_FAST_SECURE_DELETE
733cb45eef4Sdrh Tcl_SetVar2(interp, "sqlite_options", "fast_secure_delete", "1", TCL_GLOBAL_ONLY);
734cb45eef4Sdrh #else
735cb45eef4Sdrh Tcl_SetVar2(interp, "sqlite_options", "fast_secure_delete", "0", TCL_GLOBAL_ONLY);
736cb45eef4Sdrh #endif
737cb45eef4Sdrh
738c5d0bd90Sdrh #ifdef SQLITE_SECURE_DELETE
739c5d0bd90Sdrh Tcl_SetVar2(interp, "sqlite_options", "secure_delete", "1", TCL_GLOBAL_ONLY);
740c5d0bd90Sdrh #else
741c5d0bd90Sdrh Tcl_SetVar2(interp, "sqlite_options", "secure_delete", "0", TCL_GLOBAL_ONLY);
742c5d0bd90Sdrh #endif
743c5d0bd90Sdrh
74409e60541Sdrh #ifdef SQLITE_USER_AUTHENTICATION
74509e60541Sdrh Tcl_SetVar2(interp, "sqlite_options", "userauth", "1", TCL_GLOBAL_ONLY);
74609e60541Sdrh #else
74709e60541Sdrh Tcl_SetVar2(interp, "sqlite_options", "userauth", "0", TCL_GLOBAL_ONLY);
74809e60541Sdrh #endif
74909e60541Sdrh
750050d09abSshaneh #ifdef SQLITE_MULTIPLEX_EXT_OVWR
751050d09abSshaneh Tcl_SetVar2(interp, "sqlite_options", "multiplex_ext_overwrite", "1", TCL_GLOBAL_ONLY);
752050d09abSshaneh #else
753050d09abSshaneh Tcl_SetVar2(interp, "sqlite_options", "multiplex_ext_overwrite", "0", TCL_GLOBAL_ONLY);
754050d09abSshaneh #endif
755050d09abSshaneh
756ec424a5bSdrh #ifdef YYTRACKMAXSTACKDEPTH
757ec424a5bSdrh Tcl_SetVar2(interp, "sqlite_options", "yytrackmaxstackdepth", "1", TCL_GLOBAL_ONLY);
758ec424a5bSdrh #else
759ec424a5bSdrh Tcl_SetVar2(interp, "sqlite_options", "yytrackmaxstackdepth", "0", TCL_GLOBAL_ONLY);
760ec424a5bSdrh #endif
761ec424a5bSdrh
762d83f7ca1Sdan #ifdef SQLITE_ENABLE_SQLLOG
763d83f7ca1Sdan Tcl_SetVar2(interp, "sqlite_options", "sqllog", "1", TCL_GLOBAL_ONLY);
764d83f7ca1Sdan #else
765d83f7ca1Sdan Tcl_SetVar2(interp, "sqlite_options", "sqllog", "0", TCL_GLOBAL_ONLY);
766d83f7ca1Sdan #endif
767d83f7ca1Sdan
7685c35e903Sdan #ifdef SQLITE_ENABLE_URI_00_ERROR
7695c35e903Sdan Tcl_SetVar2(interp, "sqlite_options", "uri_00_error", "1", TCL_GLOBAL_ONLY);
7705c35e903Sdan #else
7715c35e903Sdan Tcl_SetVar2(interp, "sqlite_options", "uri_00_error", "0", TCL_GLOBAL_ONLY);
7725c35e903Sdan #endif
7735c35e903Sdan
7748bee11a4Smistachkin #if defined(SQLITE_ENABLE_NORMALIZE)
7758bee11a4Smistachkin Tcl_SetVar2(interp, "sqlite_options", "normalize", "1", TCL_GLOBAL_ONLY);
7768bee11a4Smistachkin #else
7778bee11a4Smistachkin Tcl_SetVar2(interp, "sqlite_options", "normalize", "0", TCL_GLOBAL_ONLY);
7788bee11a4Smistachkin #endif
7798bee11a4Smistachkin
78067a9b8edSdan #ifdef SQLITE_OMIT_WINDOWFUNC
78167a9b8edSdan Tcl_SetVar2(interp, "sqlite_options", "windowfunc", "0", TCL_GLOBAL_ONLY);
78267a9b8edSdan #else
78367a9b8edSdan Tcl_SetVar2(interp, "sqlite_options", "windowfunc", "1", TCL_GLOBAL_ONLY);
78467a9b8edSdan #endif
78567a9b8edSdan
786bb4957f8Sdrh #define LINKVAR(x) { \
787bb4957f8Sdrh static const int cv_ ## x = SQLITE_ ## x; \
788bb4957f8Sdrh Tcl_LinkVar(interp, "SQLITE_" #x, (char *)&(cv_ ## x), \
789bb4957f8Sdrh TCL_LINK_INT | TCL_LINK_READ_ONLY); }
790e6a58a4eSdanielk1977
791e6a58a4eSdanielk1977 LINKVAR( MAX_LENGTH );
792e6a58a4eSdanielk1977 LINKVAR( MAX_COLUMN );
793e6a58a4eSdanielk1977 LINKVAR( MAX_SQL_LENGTH );
794e6a58a4eSdanielk1977 LINKVAR( MAX_EXPR_DEPTH );
795e6a58a4eSdanielk1977 LINKVAR( MAX_COMPOUND_SELECT );
796e6a58a4eSdanielk1977 LINKVAR( MAX_VDBE_OP );
797e6a58a4eSdanielk1977 LINKVAR( MAX_FUNCTION_ARG );
798e6a58a4eSdanielk1977 LINKVAR( MAX_VARIABLE_NUMBER );
799e6a58a4eSdanielk1977 LINKVAR( MAX_PAGE_SIZE );
800e6a58a4eSdanielk1977 LINKVAR( MAX_PAGE_COUNT );
801e6a58a4eSdanielk1977 LINKVAR( MAX_LIKE_PATTERN_LENGTH );
802f589450dSdan LINKVAR( MAX_TRIGGER_DEPTH );
803bb4957f8Sdrh LINKVAR( DEFAULT_CACHE_SIZE );
804bb4957f8Sdrh LINKVAR( DEFAULT_PAGE_SIZE );
805bb4957f8Sdrh LINKVAR( DEFAULT_FILE_FORMAT );
806f5da7dbbSdan LINKVAR( DEFAULT_SYNCHRONOUS );
807f5da7dbbSdan LINKVAR( DEFAULT_WAL_SYNCHRONOUS );
808bb4957f8Sdrh LINKVAR( MAX_ATTACHED );
809b0a43057Sdan LINKVAR( MAX_DEFAULT_PAGE_SIZE );
8103705ef6aSdrh LINKVAR( MAX_WORKER_THREADS );
811e6a58a4eSdanielk1977
812c797d4dcSdrh {
813b06a0b67Sdanielk1977 static const int cv_TEMP_STORE = SQLITE_TEMP_STORE;
814bb4957f8Sdrh Tcl_LinkVar(interp, "TEMP_STORE", (char *)&(cv_TEMP_STORE),
815c797d4dcSdrh TCL_LINK_INT | TCL_LINK_READ_ONLY);
816c797d4dcSdrh }
817c722a2c2Sdrh
818c722a2c2Sdrh #ifdef _MSC_VER
819c722a2c2Sdrh {
820c722a2c2Sdrh static const int cv__MSC_VER = 1;
821c722a2c2Sdrh Tcl_LinkVar(interp, "_MSC_VER", (char *)&(cv__MSC_VER),
822c722a2c2Sdrh TCL_LINK_INT | TCL_LINK_READ_ONLY);
823c722a2c2Sdrh }
824c722a2c2Sdrh #endif
825c722a2c2Sdrh #ifdef __GNUC__
826c722a2c2Sdrh {
827c722a2c2Sdrh static const int cv___GNUC__ = 1;
828c722a2c2Sdrh Tcl_LinkVar(interp, "__GNUC__", (char *)&(cv___GNUC__),
829c722a2c2Sdrh TCL_LINK_INT | TCL_LINK_READ_ONLY);
830c722a2c2Sdrh }
831c722a2c2Sdrh #endif
832c797d4dcSdrh }
833c797d4dcSdrh
834c797d4dcSdrh
835c797d4dcSdrh /*
836c797d4dcSdrh ** Register commands with the TCL interpreter.
837c797d4dcSdrh */
Sqliteconfig_Init(Tcl_Interp * interp)838c797d4dcSdrh int Sqliteconfig_Init(Tcl_Interp *interp){
839c797d4dcSdrh set_options(interp);
840c797d4dcSdrh return TCL_OK;
841c797d4dcSdrh }
842