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