xref: /sqlite-3.40.0/src/test_config.c (revision cd7274ce)
1 /*
2 ** 2007 May 7
3 **
4 ** The author disclaims copyright to this source code.  In place of
5 ** a legal notice, here is a blessing:
6 **
7 **    May you do good and not evil.
8 **    May you find forgiveness for yourself and forgive others.
9 **    May you share freely, never taking more than you give.
10 **
11 *************************************************************************
12 **
13 ** This file contains code used for testing the SQLite system.
14 ** None of the code in this file goes into a deliverable build.
15 **
16 ** The focus of this file is providing the TCL testing layer
17 ** access to compile-time constants.
18 **
19 ** $Id: test_config.c,v 1.16 2007/10/19 17:47:25 drh Exp $
20 */
21 
22 #include "sqliteLimit.h"
23 
24 int sqlite3MAX_LENGTH = SQLITE_MAX_LENGTH;
25 int sqlite3MAX_COLUMN = SQLITE_MAX_COLUMN;
26 int sqlite3MAX_SQL_LENGTH = SQLITE_MAX_SQL_LENGTH;
27 int sqlite3MAX_EXPR_DEPTH = SQLITE_MAX_EXPR_DEPTH;
28 int sqlite3MAX_COMPOUND_SELECT = SQLITE_MAX_COMPOUND_SELECT;
29 int sqlite3MAX_VDBE_OP = SQLITE_MAX_VDBE_OP;
30 int sqlite3MAX_FUNCTION_ARG = SQLITE_MAX_FUNCTION_ARG;
31 int sqlite3MAX_VARIABLE_NUMBER = SQLITE_MAX_VARIABLE_NUMBER;
32 int sqlite3MAX_PAGE_SIZE = SQLITE_MAX_PAGE_SIZE;
33 int sqlite3MAX_PAGE_COUNT = SQLITE_MAX_PAGE_COUNT;
34 int sqlite3MAX_LIKE_PATTERN_LENGTH = SQLITE_MAX_LIKE_PATTERN_LENGTH;
35 
36 #include "sqliteInt.h"
37 #include "tcl.h"
38 #include <stdlib.h>
39 #include <string.h>
40 
41 /*
42 ** This routine sets entries in the global ::sqlite_options() array variable
43 ** according to the compile-time configuration of the database.  Test
44 ** procedures use this to determine when tests should be omitted.
45 */
46 static void set_options(Tcl_Interp *interp){
47 #ifdef SQLITE_32BIT_ROWID
48   Tcl_SetVar2(interp, "sqlite_options", "rowid32", "1", TCL_GLOBAL_ONLY);
49 #else
50   Tcl_SetVar2(interp, "sqlite_options", "rowid32", "0", TCL_GLOBAL_ONLY);
51 #endif
52 
53 #ifdef SQLITE_CASE_SENSITIVE_LIKE
54   Tcl_SetVar2(interp, "sqlite_options","casesensitivelike","1",TCL_GLOBAL_ONLY);
55 #else
56   Tcl_SetVar2(interp, "sqlite_options","casesensitivelike","0",TCL_GLOBAL_ONLY);
57 #endif
58 
59 #ifdef SQLITE_DEBUG
60   Tcl_SetVar2(interp, "sqlite_options", "debug", "1", TCL_GLOBAL_ONLY);
61 #else
62   Tcl_SetVar2(interp, "sqlite_options", "debug", "0", TCL_GLOBAL_ONLY);
63 #endif
64 
65 #ifdef SQLITE_DISABLE_DIRSYNC
66   Tcl_SetVar2(interp, "sqlite_options", "dirsync", "0", TCL_GLOBAL_ONLY);
67 #else
68   Tcl_SetVar2(interp, "sqlite_options", "dirsync", "1", TCL_GLOBAL_ONLY);
69 #endif
70 
71 #ifdef SQLITE_DISABLE_LFS
72   Tcl_SetVar2(interp, "sqlite_options", "lfs", "0", TCL_GLOBAL_ONLY);
73 #else
74   Tcl_SetVar2(interp, "sqlite_options", "lfs", "1", TCL_GLOBAL_ONLY);
75 #endif
76 
77 #ifdef SQLITE_MEMDEBUG
78   Tcl_SetVar2(interp, "sqlite_options", "memdebug", "1", TCL_GLOBAL_ONLY);
79 #else
80   Tcl_SetVar2(interp, "sqlite_options", "memdebug", "0", TCL_GLOBAL_ONLY);
81 #endif
82 
83 #ifdef SQLITE_MEMORY_SIZE
84   Tcl_SetVar2(interp, "sqlite_options", "mem3", "1", TCL_GLOBAL_ONLY);
85 #else
86   Tcl_SetVar2(interp, "sqlite_options", "mem3", "0", TCL_GLOBAL_ONLY);
87 #endif
88 
89 #ifdef SQLITE_OMIT_ALTERTABLE
90   Tcl_SetVar2(interp, "sqlite_options", "altertable", "0", TCL_GLOBAL_ONLY);
91 #else
92   Tcl_SetVar2(interp, "sqlite_options", "altertable", "1", TCL_GLOBAL_ONLY);
93 #endif
94 
95 #ifdef SQLITE_OMIT_ANALYZE
96   Tcl_SetVar2(interp, "sqlite_options", "analyze", "0", TCL_GLOBAL_ONLY);
97 #else
98   Tcl_SetVar2(interp, "sqlite_options", "analyze", "1", TCL_GLOBAL_ONLY);
99 #endif
100 
101 #ifdef SQLITE_ENABLE_ATOMIC_WRITE
102   Tcl_SetVar2(interp, "sqlite_options", "atomicwrite", "1", TCL_GLOBAL_ONLY);
103 #else
104   Tcl_SetVar2(interp, "sqlite_options", "atomicwrite", "0", TCL_GLOBAL_ONLY);
105 #endif
106 
107 #ifdef SQLITE_OMIT_ATTACH
108   Tcl_SetVar2(interp, "sqlite_options", "attach", "0", TCL_GLOBAL_ONLY);
109 #else
110   Tcl_SetVar2(interp, "sqlite_options", "attach", "1", TCL_GLOBAL_ONLY);
111 #endif
112 
113 #ifdef SQLITE_OMIT_AUTHORIZATION
114   Tcl_SetVar2(interp, "sqlite_options", "auth", "0", TCL_GLOBAL_ONLY);
115 #else
116   Tcl_SetVar2(interp, "sqlite_options", "auth", "1", TCL_GLOBAL_ONLY);
117 #endif
118 
119 #ifdef SQLITE_OMIT_AUTOINCREMENT
120   Tcl_SetVar2(interp, "sqlite_options", "autoinc", "0", TCL_GLOBAL_ONLY);
121 #else
122   Tcl_SetVar2(interp, "sqlite_options", "autoinc", "1", TCL_GLOBAL_ONLY);
123 #endif
124 
125 #ifdef SQLITE_OMIT_AUTOVACUUM
126   Tcl_SetVar2(interp, "sqlite_options", "autovacuum", "0", TCL_GLOBAL_ONLY);
127 #else
128   Tcl_SetVar2(interp, "sqlite_options", "autovacuum", "1", TCL_GLOBAL_ONLY);
129 #endif /* SQLITE_OMIT_AUTOVACUUM */
130 #if !defined(SQLITE_DEFAULT_AUTOVACUUM) || SQLITE_DEFAULT_AUTOVACUUM==0
131   Tcl_SetVar2(interp,"sqlite_options","default_autovacuum","0",TCL_GLOBAL_ONLY);
132 #else
133   Tcl_SetVar2(interp,"sqlite_options","default_autovacuum","1",TCL_GLOBAL_ONLY);
134 #endif
135 
136 #ifdef SQLITE_OMIT_BETWEEN_OPTIMIZATION
137   Tcl_SetVar2(interp, "sqlite_options", "between_opt", "0", TCL_GLOBAL_ONLY);
138 #else
139   Tcl_SetVar2(interp, "sqlite_options", "between_opt", "1", TCL_GLOBAL_ONLY);
140 #endif
141 
142 #ifdef SQLITE_OMIT_BLOB_LITERAL
143   Tcl_SetVar2(interp, "sqlite_options", "bloblit", "0", TCL_GLOBAL_ONLY);
144 #else
145   Tcl_SetVar2(interp, "sqlite_options", "bloblit", "1", TCL_GLOBAL_ONLY);
146 #endif
147 
148 #ifdef SQLITE_OMIT_CAST
149   Tcl_SetVar2(interp, "sqlite_options", "cast", "0", TCL_GLOBAL_ONLY);
150 #else
151   Tcl_SetVar2(interp, "sqlite_options", "cast", "1", TCL_GLOBAL_ONLY);
152 #endif
153 
154 #ifdef SQLITE_OMIT_CHECK
155   Tcl_SetVar2(interp, "sqlite_options", "check", "0", TCL_GLOBAL_ONLY);
156 #else
157   Tcl_SetVar2(interp, "sqlite_options", "check", "1", TCL_GLOBAL_ONLY);
158 #endif
159 
160 #ifdef SQLITE_ENABLE_COLUMN_METADATA
161   Tcl_SetVar2(interp, "sqlite_options", "columnmetadata", "1", TCL_GLOBAL_ONLY);
162 #else
163   Tcl_SetVar2(interp, "sqlite_options", "columnmetadata", "0", TCL_GLOBAL_ONLY);
164 #endif
165 
166 #ifdef SQLITE_OMIT_COMPLETE
167   Tcl_SetVar2(interp, "sqlite_options", "complete", "0", TCL_GLOBAL_ONLY);
168 #else
169   Tcl_SetVar2(interp, "sqlite_options", "complete", "1", TCL_GLOBAL_ONLY);
170 #endif
171 
172 #ifdef SQLITE_OMIT_COMPOUND_SELECT
173   Tcl_SetVar2(interp, "sqlite_options", "compound", "0", TCL_GLOBAL_ONLY);
174 #else
175   Tcl_SetVar2(interp, "sqlite_options", "compound", "1", TCL_GLOBAL_ONLY);
176 #endif
177 
178 #ifdef SQLITE_OMIT_CONFLICT_CLAUSE
179   Tcl_SetVar2(interp, "sqlite_options", "conflict", "0", TCL_GLOBAL_ONLY);
180 #else
181   Tcl_SetVar2(interp, "sqlite_options", "conflict", "1", TCL_GLOBAL_ONLY);
182 #endif
183 
184 #if OS_UNIX
185   Tcl_SetVar2(interp, "sqlite_options", "crashtest", "1", TCL_GLOBAL_ONLY);
186 #else
187   Tcl_SetVar2(interp, "sqlite_options", "crashtest", "0", TCL_GLOBAL_ONLY);
188 #endif
189 
190 #ifdef SQLITE_OMIT_DATETIME_FUNCS
191   Tcl_SetVar2(interp, "sqlite_options", "datetime", "0", TCL_GLOBAL_ONLY);
192 #else
193   Tcl_SetVar2(interp, "sqlite_options", "datetime", "1", TCL_GLOBAL_ONLY);
194 #endif
195 
196 #ifdef SQLITE_OMIT_DISKIO
197   Tcl_SetVar2(interp, "sqlite_options", "diskio", "0", TCL_GLOBAL_ONLY);
198 #else
199   Tcl_SetVar2(interp, "sqlite_options", "diskio", "1", TCL_GLOBAL_ONLY);
200 #endif
201 
202 #ifdef SQLITE_OMIT_EXPLAIN
203   Tcl_SetVar2(interp, "sqlite_options", "explain", "0", TCL_GLOBAL_ONLY);
204 #else
205   Tcl_SetVar2(interp, "sqlite_options", "explain", "1", TCL_GLOBAL_ONLY);
206 #endif
207 
208 #ifdef SQLITE_OMIT_FLOATING_POINT
209   Tcl_SetVar2(interp, "sqlite_options", "floatingpoint", "0", TCL_GLOBAL_ONLY);
210 #else
211   Tcl_SetVar2(interp, "sqlite_options", "floatingpoint", "1", TCL_GLOBAL_ONLY);
212 #endif
213 
214 #ifdef SQLITE_OMIT_FOREIGN_KEY
215   Tcl_SetVar2(interp, "sqlite_options", "foreignkey", "0", TCL_GLOBAL_ONLY);
216 #else
217   Tcl_SetVar2(interp, "sqlite_options", "foreignkey", "1", TCL_GLOBAL_ONLY);
218 #endif
219 
220 #ifdef SQLITE_ENABLE_FTS1
221   Tcl_SetVar2(interp, "sqlite_options", "fts1", "1", TCL_GLOBAL_ONLY);
222 #else
223   Tcl_SetVar2(interp, "sqlite_options", "fts1", "0", TCL_GLOBAL_ONLY);
224 #endif
225 
226 #ifdef SQLITE_ENABLE_FTS2
227   Tcl_SetVar2(interp, "sqlite_options", "fts2", "1", TCL_GLOBAL_ONLY);
228 #else
229   Tcl_SetVar2(interp, "sqlite_options", "fts2", "0", TCL_GLOBAL_ONLY);
230 #endif
231 
232 #ifdef SQLITE_ENABLE_FTS3
233   Tcl_SetVar2(interp, "sqlite_options", "fts3", "1", TCL_GLOBAL_ONLY);
234 #else
235   Tcl_SetVar2(interp, "sqlite_options", "fts3", "0", TCL_GLOBAL_ONLY);
236 #endif
237 
238 #ifdef SQLITE_OMIT_GLOBALRECOVER
239   Tcl_SetVar2(interp, "sqlite_options", "globalrecover", "0", TCL_GLOBAL_ONLY);
240 #else
241   Tcl_SetVar2(interp, "sqlite_options", "globalrecover", "1", TCL_GLOBAL_ONLY);
242 #endif
243 
244 #ifdef SQLITE_ENABLE_ICU
245   Tcl_SetVar2(interp, "sqlite_options", "icu", "1", TCL_GLOBAL_ONLY);
246 #else
247   Tcl_SetVar2(interp, "sqlite_options", "icu", "0", TCL_GLOBAL_ONLY);
248 #endif
249 
250 #ifdef SQLITE_OMIT_INCRBLOB
251   Tcl_SetVar2(interp, "sqlite_options", "incrblob", "0", TCL_GLOBAL_ONLY);
252 #else
253   Tcl_SetVar2(interp, "sqlite_options", "incrblob", "1", TCL_GLOBAL_ONLY);
254 #endif /* SQLITE_OMIT_AUTOVACUUM */
255 
256 #ifdef SQLITE_OMIT_INTEGRITY_CHECK
257   Tcl_SetVar2(interp, "sqlite_options", "integrityck", "0", TCL_GLOBAL_ONLY);
258 #else
259   Tcl_SetVar2(interp, "sqlite_options", "integrityck", "1", TCL_GLOBAL_ONLY);
260 #endif
261 
262 #if defined(SQLITE_DEFAULT_FILE_FORMAT) && SQLITE_DEFAULT_FILE_FORMAT==1
263   Tcl_SetVar2(interp, "sqlite_options", "legacyformat", "1", TCL_GLOBAL_ONLY);
264 #else
265   Tcl_SetVar2(interp, "sqlite_options", "legacyformat", "0", TCL_GLOBAL_ONLY);
266 #endif
267 
268 #ifdef SQLITE_OMIT_LIKE_OPTIMIZATION
269   Tcl_SetVar2(interp, "sqlite_options", "like_opt", "0", TCL_GLOBAL_ONLY);
270 #else
271   Tcl_SetVar2(interp, "sqlite_options", "like_opt", "1", TCL_GLOBAL_ONLY);
272 #endif
273 
274 #ifdef SQLITE_OMIT_LOAD_EXTENSION
275   Tcl_SetVar2(interp, "sqlite_options", "load_ext", "0", TCL_GLOBAL_ONLY);
276 #else
277   Tcl_SetVar2(interp, "sqlite_options", "load_ext", "1", TCL_GLOBAL_ONLY);
278 #endif
279 
280 Tcl_SetVar2(interp, "sqlite_options", "long_double",
281               sizeof(LONGDOUBLE_TYPE)>sizeof(double) ? "1" : "0",
282               TCL_GLOBAL_ONLY);
283 
284 #ifdef SQLITE_OMIT_MEMORYDB
285   Tcl_SetVar2(interp, "sqlite_options", "memorydb", "0", TCL_GLOBAL_ONLY);
286 #else
287   Tcl_SetVar2(interp, "sqlite_options", "memorydb", "1", TCL_GLOBAL_ONLY);
288 #endif
289 
290 #ifdef SQLITE_ENABLE_MEMORY_MANAGEMENT
291   Tcl_SetVar2(interp, "sqlite_options", "memorymanage", "1", TCL_GLOBAL_ONLY);
292 #else
293   Tcl_SetVar2(interp, "sqlite_options", "memorymanage", "0", TCL_GLOBAL_ONLY);
294 #endif
295 
296 #ifdef SQLITE_OMIT_OR_OPTIMIZATION
297   Tcl_SetVar2(interp, "sqlite_options", "or_opt", "0", TCL_GLOBAL_ONLY);
298 #else
299   Tcl_SetVar2(interp, "sqlite_options", "or_opt", "1", TCL_GLOBAL_ONLY);
300 #endif
301 
302 #ifdef SQLITE_OMIT_PAGER_PRAGMAS
303   Tcl_SetVar2(interp, "sqlite_options", "pager_pragmas", "0", TCL_GLOBAL_ONLY);
304 #else
305   Tcl_SetVar2(interp, "sqlite_options", "pager_pragmas", "1", TCL_GLOBAL_ONLY);
306 #endif
307 
308 #ifdef SQLITE_OMIT_PARSER
309   Tcl_SetVar2(interp, "sqlite_options", "parser", "0", TCL_GLOBAL_ONLY);
310 #else
311   Tcl_SetVar2(interp, "sqlite_options", "parser", "1", TCL_GLOBAL_ONLY);
312 #endif
313 
314 #if defined(SQLITE_OMIT_PRAGMA) || defined(SQLITE_OMIT_FLAG_PRAGMAS)
315   Tcl_SetVar2(interp, "sqlite_options", "pragma", "0", TCL_GLOBAL_ONLY);
316   Tcl_SetVar2(interp, "sqlite_options", "integrityck", "0", TCL_GLOBAL_ONLY);
317 #else
318   Tcl_SetVar2(interp, "sqlite_options", "pragma", "1", TCL_GLOBAL_ONLY);
319 #endif
320 
321 #ifdef SQLITE_OMIT_PROGRESS_CALLBACK
322   Tcl_SetVar2(interp, "sqlite_options", "progress", "0", TCL_GLOBAL_ONLY);
323 #else
324   Tcl_SetVar2(interp, "sqlite_options", "progress", "1", TCL_GLOBAL_ONLY);
325 #endif
326 
327 #ifdef SQLITE_OMIT_REINDEX
328   Tcl_SetVar2(interp, "sqlite_options", "reindex", "0", TCL_GLOBAL_ONLY);
329 #else
330   Tcl_SetVar2(interp, "sqlite_options", "reindex", "1", TCL_GLOBAL_ONLY);
331 #endif
332 
333 #ifdef SQLITE_OMIT_SCHEMA_PRAGMAS
334   Tcl_SetVar2(interp, "sqlite_options", "schema_pragmas", "0", TCL_GLOBAL_ONLY);
335 #else
336   Tcl_SetVar2(interp, "sqlite_options", "schema_pragmas", "1", TCL_GLOBAL_ONLY);
337 #endif
338 
339 #ifdef SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS
340   Tcl_SetVar2(interp, "sqlite_options", "schema_version", "0", TCL_GLOBAL_ONLY);
341 #else
342   Tcl_SetVar2(interp, "sqlite_options", "schema_version", "1", TCL_GLOBAL_ONLY);
343 #endif
344 
345 #ifdef SQLITE_OMIT_SHARED_CACHE
346   Tcl_SetVar2(interp, "sqlite_options", "shared_cache", "0", TCL_GLOBAL_ONLY);
347 #else
348   Tcl_SetVar2(interp, "sqlite_options", "shared_cache", "1", TCL_GLOBAL_ONLY);
349 #endif
350 
351 #ifdef SQLITE_OMIT_SUBQUERY
352   Tcl_SetVar2(interp, "sqlite_options", "subquery", "0", TCL_GLOBAL_ONLY);
353 #else
354   Tcl_SetVar2(interp, "sqlite_options", "subquery", "1", TCL_GLOBAL_ONLY);
355 #endif
356 
357 #ifdef SQLITE_OMIT_TCL_VARIABLE
358   Tcl_SetVar2(interp, "sqlite_options", "tclvar", "0", TCL_GLOBAL_ONLY);
359 #else
360   Tcl_SetVar2(interp, "sqlite_options", "tclvar", "1", TCL_GLOBAL_ONLY);
361 #endif
362 
363 #if SQLITE_THREADSAFE
364   Tcl_SetVar2(interp, "sqlite_options", "threadsafe", "1", TCL_GLOBAL_ONLY);
365 #else
366   Tcl_SetVar2(interp, "sqlite_options", "threadsafe", "0", TCL_GLOBAL_ONLY);
367 #endif
368 
369 #ifdef SQLITE_OMIT_TRACE
370   Tcl_SetVar2(interp, "sqlite_options", "trace", "0", TCL_GLOBAL_ONLY);
371 #else
372   Tcl_SetVar2(interp, "sqlite_options", "trace", "1", TCL_GLOBAL_ONLY);
373 #endif
374 
375 #ifdef SQLITE_OMIT_TRIGGER
376   Tcl_SetVar2(interp, "sqlite_options", "trigger", "0", TCL_GLOBAL_ONLY);
377 #else
378   Tcl_SetVar2(interp, "sqlite_options", "trigger", "1", TCL_GLOBAL_ONLY);
379 #endif
380 
381 #ifdef SQLITE_OMIT_TEMPDB
382   Tcl_SetVar2(interp, "sqlite_options", "tempdb", "0", TCL_GLOBAL_ONLY);
383 #else
384   Tcl_SetVar2(interp, "sqlite_options", "tempdb", "1", TCL_GLOBAL_ONLY);
385 #endif
386 
387 #ifdef SQLITE_OMIT_UTF16
388   Tcl_SetVar2(interp, "sqlite_options", "utf16", "0", TCL_GLOBAL_ONLY);
389 #else
390   Tcl_SetVar2(interp, "sqlite_options", "utf16", "1", TCL_GLOBAL_ONLY);
391 #endif
392 
393 #if defined(SQLITE_OMIT_VACUUM) || defined(SQLITE_OMIT_ATTACH)
394   Tcl_SetVar2(interp, "sqlite_options", "vacuum", "0", TCL_GLOBAL_ONLY);
395 #else
396   Tcl_SetVar2(interp, "sqlite_options", "vacuum", "1", TCL_GLOBAL_ONLY);
397 #endif
398 
399 #ifdef SQLITE_OMIT_VIEW
400   Tcl_SetVar2(interp, "sqlite_options", "view", "0", TCL_GLOBAL_ONLY);
401 #else
402   Tcl_SetVar2(interp, "sqlite_options", "view", "1", TCL_GLOBAL_ONLY);
403 #endif
404 
405 #ifdef SQLITE_OMIT_VIRTUALTABLE
406   Tcl_SetVar2(interp, "sqlite_options", "vtab", "0", TCL_GLOBAL_ONLY);
407 #else
408   Tcl_SetVar2(interp, "sqlite_options", "vtab", "1", TCL_GLOBAL_ONLY);
409 #endif
410 
411 #define LINKVAR(x) \
412     Tcl_LinkVar(interp, "SQLITE_" #x, (char *)&(sqlite3 ## x), TCL_LINK_INT)
413 
414   LINKVAR( MAX_LENGTH );
415   LINKVAR( MAX_COLUMN );
416   LINKVAR( MAX_SQL_LENGTH );
417   LINKVAR( MAX_EXPR_DEPTH );
418   LINKVAR( MAX_COMPOUND_SELECT );
419   LINKVAR( MAX_VDBE_OP );
420   LINKVAR( MAX_FUNCTION_ARG );
421   LINKVAR( MAX_VARIABLE_NUMBER );
422   LINKVAR( MAX_PAGE_SIZE );
423   LINKVAR( MAX_PAGE_COUNT );
424   LINKVAR( MAX_LIKE_PATTERN_LENGTH );
425 
426   {
427     static int sqlite_default_temp_cache_size = SQLITE_DEFAULT_TEMP_CACHE_SIZE;
428     Tcl_LinkVar(interp, "SQLITE_DEFAULT_TEMP_CACHE_SIZE",
429            (char*)&sqlite_default_temp_cache_size,
430            TCL_LINK_INT|TCL_LINK_READ_ONLY);
431   }
432   {
433     static int sqlite_default_cache_size = SQLITE_DEFAULT_CACHE_SIZE;
434     Tcl_LinkVar(interp, "SQLITE_DEFAULT_CACHE_SIZE",
435            (char*)&sqlite_default_cache_size, TCL_LINK_INT|TCL_LINK_READ_ONLY);
436   }
437   {
438     static int sqlite_default_page_size = SQLITE_DEFAULT_PAGE_SIZE;
439     Tcl_LinkVar(interp, "SQLITE_DEFAULT_PAGE_SIZE",
440            (char*)&sqlite_default_page_size, TCL_LINK_INT|TCL_LINK_READ_ONLY);
441   }
442   {
443     static int temp_store = TEMP_STORE;
444     Tcl_LinkVar(interp, "TEMP_STORE",
445            (char*)&temp_store, TCL_LINK_INT|TCL_LINK_READ_ONLY);
446   }
447   {
448     static int sqlite_default_file_format = SQLITE_DEFAULT_FILE_FORMAT;
449     Tcl_LinkVar(interp, "SQLITE_DEFAULT_FILE_FORMAT",
450            (char*)&sqlite_default_file_format, TCL_LINK_INT|TCL_LINK_READ_ONLY);
451   }
452   {
453     static int sqlite_max_attached = SQLITE_MAX_ATTACHED;
454     Tcl_LinkVar(interp, "SQLITE_MAX_ATTACHED",
455            (char*)&sqlite_max_attached, TCL_LINK_INT|TCL_LINK_READ_ONLY);
456   }
457 }
458 
459 
460 /*
461 ** Register commands with the TCL interpreter.
462 */
463 int Sqliteconfig_Init(Tcl_Interp *interp){
464   set_options(interp);
465   return TCL_OK;
466 }
467