| OLD | NEW |
| 1 /* | 1 /* |
| 2 ** 2010 February 23 | 2 ** 2010 February 23 |
| 3 ** | 3 ** |
| 4 ** The author disclaims copyright to this source code. In place of | 4 ** The author disclaims copyright to this source code. In place of |
| 5 ** a legal notice, here is a blessing: | 5 ** a legal notice, here is a blessing: |
| 6 ** | 6 ** |
| 7 ** May you do good and not evil. | 7 ** May you do good and not evil. |
| 8 ** May you find forgiveness for yourself and forgive others. | 8 ** May you find forgiveness for yourself and forgive others. |
| 9 ** May you share freely, never taking more than you give. | 9 ** May you share freely, never taking more than you give. |
| 10 ** | 10 ** |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 47 #endif | 47 #endif |
| 48 #ifdef SQLITE_COVERAGE_TEST | 48 #ifdef SQLITE_COVERAGE_TEST |
| 49 "COVERAGE_TEST", | 49 "COVERAGE_TEST", |
| 50 #endif | 50 #endif |
| 51 #ifdef SQLITE_DEBUG | 51 #ifdef SQLITE_DEBUG |
| 52 "DEBUG", | 52 "DEBUG", |
| 53 #endif | 53 #endif |
| 54 #ifdef SQLITE_DEFAULT_LOCKING_MODE | 54 #ifdef SQLITE_DEFAULT_LOCKING_MODE |
| 55 "DEFAULT_LOCKING_MODE=" CTIMEOPT_VAL(SQLITE_DEFAULT_LOCKING_MODE), | 55 "DEFAULT_LOCKING_MODE=" CTIMEOPT_VAL(SQLITE_DEFAULT_LOCKING_MODE), |
| 56 #endif | 56 #endif |
| 57 #if defined(SQLITE_DEFAULT_MMAP_SIZE) && !defined(SQLITE_DEFAULT_MMAP_SIZE_xc) |
| 58 "DEFAULT_MMAP_SIZE=" CTIMEOPT_VAL(SQLITE_DEFAULT_MMAP_SIZE), |
| 59 #endif |
| 57 #ifdef SQLITE_DISABLE_DIRSYNC | 60 #ifdef SQLITE_DISABLE_DIRSYNC |
| 58 "DISABLE_DIRSYNC", | 61 "DISABLE_DIRSYNC", |
| 59 #endif | 62 #endif |
| 60 #ifdef SQLITE_DISABLE_LFS | 63 #ifdef SQLITE_DISABLE_LFS |
| 61 "DISABLE_LFS", | 64 "DISABLE_LFS", |
| 62 #endif | 65 #endif |
| 63 #ifdef SQLITE_ENABLE_ATOMIC_WRITE | 66 #ifdef SQLITE_ENABLE_ATOMIC_WRITE |
| 64 "ENABLE_ATOMIC_WRITE", | 67 "ENABLE_ATOMIC_WRITE", |
| 65 #endif | 68 #endif |
| 66 #ifdef SQLITE_ENABLE_CEROD | 69 #ifdef SQLITE_ENABLE_CEROD |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 107 #endif | 110 #endif |
| 108 #ifdef SQLITE_ENABLE_MEMSYS5 | 111 #ifdef SQLITE_ENABLE_MEMSYS5 |
| 109 "ENABLE_MEMSYS5", | 112 "ENABLE_MEMSYS5", |
| 110 #endif | 113 #endif |
| 111 #ifdef SQLITE_ENABLE_OVERSIZE_CELL_CHECK | 114 #ifdef SQLITE_ENABLE_OVERSIZE_CELL_CHECK |
| 112 "ENABLE_OVERSIZE_CELL_CHECK", | 115 "ENABLE_OVERSIZE_CELL_CHECK", |
| 113 #endif | 116 #endif |
| 114 #ifdef SQLITE_ENABLE_RTREE | 117 #ifdef SQLITE_ENABLE_RTREE |
| 115 "ENABLE_RTREE", | 118 "ENABLE_RTREE", |
| 116 #endif | 119 #endif |
| 117 #ifdef SQLITE_ENABLE_STAT2 | 120 #if defined(SQLITE_ENABLE_STAT4) |
| 118 "ENABLE_STAT2", | 121 "ENABLE_STAT4", |
| 122 #elif defined(SQLITE_ENABLE_STAT3) |
| 123 "ENABLE_STAT3", |
| 119 #endif | 124 #endif |
| 120 #ifdef SQLITE_ENABLE_UNLOCK_NOTIFY | 125 #ifdef SQLITE_ENABLE_UNLOCK_NOTIFY |
| 121 "ENABLE_UNLOCK_NOTIFY", | 126 "ENABLE_UNLOCK_NOTIFY", |
| 122 #endif | 127 #endif |
| 123 #ifdef SQLITE_ENABLE_UPDATE_DELETE_LIMIT | 128 #ifdef SQLITE_ENABLE_UPDATE_DELETE_LIMIT |
| 124 "ENABLE_UPDATE_DELETE_LIMIT", | 129 "ENABLE_UPDATE_DELETE_LIMIT", |
| 125 #endif | 130 #endif |
| 126 #ifdef SQLITE_HAS_CODEC | 131 #ifdef SQLITE_HAS_CODEC |
| 127 "HAS_CODEC", | 132 "HAS_CODEC", |
| 128 #endif | 133 #endif |
| 129 #ifdef SQLITE_HAVE_ISNAN | 134 #ifdef SQLITE_HAVE_ISNAN |
| 130 "HAVE_ISNAN", | 135 "HAVE_ISNAN", |
| 131 #endif | 136 #endif |
| 132 #ifdef SQLITE_HOMEGROWN_RECURSIVE_MUTEX | 137 #ifdef SQLITE_HOMEGROWN_RECURSIVE_MUTEX |
| 133 "HOMEGROWN_RECURSIVE_MUTEX", | 138 "HOMEGROWN_RECURSIVE_MUTEX", |
| 134 #endif | 139 #endif |
| 135 #ifdef SQLITE_IGNORE_AFP_LOCK_ERRORS | 140 #ifdef SQLITE_IGNORE_AFP_LOCK_ERRORS |
| 136 "IGNORE_AFP_LOCK_ERRORS", | 141 "IGNORE_AFP_LOCK_ERRORS", |
| 137 #endif | 142 #endif |
| 138 #ifdef SQLITE_IGNORE_FLOCK_LOCK_ERRORS | 143 #ifdef SQLITE_IGNORE_FLOCK_LOCK_ERRORS |
| 139 "IGNORE_FLOCK_LOCK_ERRORS", | 144 "IGNORE_FLOCK_LOCK_ERRORS", |
| 140 #endif | 145 #endif |
| 141 #ifdef SQLITE_INT64_TYPE | 146 #ifdef SQLITE_INT64_TYPE |
| 142 "INT64_TYPE", | 147 "INT64_TYPE", |
| 143 #endif | 148 #endif |
| 144 #ifdef SQLITE_LOCK_TRACE | 149 #ifdef SQLITE_LOCK_TRACE |
| 145 "LOCK_TRACE", | 150 "LOCK_TRACE", |
| 146 #endif | 151 #endif |
| 152 #if defined(SQLITE_MAX_MMAP_SIZE) && !defined(SQLITE_MAX_MMAP_SIZE_xc) |
| 153 "MAX_MMAP_SIZE=" CTIMEOPT_VAL(SQLITE_MAX_MMAP_SIZE), |
| 154 #endif |
| 155 #ifdef SQLITE_MAX_SCHEMA_RETRY |
| 156 "MAX_SCHEMA_RETRY=" CTIMEOPT_VAL(SQLITE_MAX_SCHEMA_RETRY), |
| 157 #endif |
| 147 #ifdef SQLITE_MEMDEBUG | 158 #ifdef SQLITE_MEMDEBUG |
| 148 "MEMDEBUG", | 159 "MEMDEBUG", |
| 149 #endif | 160 #endif |
| 150 #ifdef SQLITE_MIXED_ENDIAN_64BIT_FLOAT | 161 #ifdef SQLITE_MIXED_ENDIAN_64BIT_FLOAT |
| 151 "MIXED_ENDIAN_64BIT_FLOAT", | 162 "MIXED_ENDIAN_64BIT_FLOAT", |
| 152 #endif | 163 #endif |
| 153 #ifdef SQLITE_NO_SYNC | 164 #ifdef SQLITE_NO_SYNC |
| 154 "NO_SYNC", | 165 "NO_SYNC", |
| 155 #endif | 166 #endif |
| 156 #ifdef SQLITE_OMIT_ALTERTABLE | 167 #ifdef SQLITE_OMIT_ALTERTABLE |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 191 #endif | 202 #endif |
| 192 #ifdef SQLITE_OMIT_BUILTIN_TEST | 203 #ifdef SQLITE_OMIT_BUILTIN_TEST |
| 193 "OMIT_BUILTIN_TEST", | 204 "OMIT_BUILTIN_TEST", |
| 194 #endif | 205 #endif |
| 195 #ifdef SQLITE_OMIT_CAST | 206 #ifdef SQLITE_OMIT_CAST |
| 196 "OMIT_CAST", | 207 "OMIT_CAST", |
| 197 #endif | 208 #endif |
| 198 #ifdef SQLITE_OMIT_CHECK | 209 #ifdef SQLITE_OMIT_CHECK |
| 199 "OMIT_CHECK", | 210 "OMIT_CHECK", |
| 200 #endif | 211 #endif |
| 201 /* // redundant | |
| 202 ** #ifdef SQLITE_OMIT_COMPILEOPTION_DIAGS | |
| 203 ** "OMIT_COMPILEOPTION_DIAGS", | |
| 204 ** #endif | |
| 205 */ | |
| 206 #ifdef SQLITE_OMIT_COMPLETE | 212 #ifdef SQLITE_OMIT_COMPLETE |
| 207 "OMIT_COMPLETE", | 213 "OMIT_COMPLETE", |
| 208 #endif | 214 #endif |
| 209 #ifdef SQLITE_OMIT_COMPOUND_SELECT | 215 #ifdef SQLITE_OMIT_COMPOUND_SELECT |
| 210 "OMIT_COMPOUND_SELECT", | 216 "OMIT_COMPOUND_SELECT", |
| 211 #endif | 217 #endif |
| 218 #ifdef SQLITE_OMIT_CTE |
| 219 "OMIT_CTE", |
| 220 #endif |
| 212 #ifdef SQLITE_OMIT_DATETIME_FUNCS | 221 #ifdef SQLITE_OMIT_DATETIME_FUNCS |
| 213 "OMIT_DATETIME_FUNCS", | 222 "OMIT_DATETIME_FUNCS", |
| 214 #endif | 223 #endif |
| 215 #ifdef SQLITE_OMIT_DECLTYPE | 224 #ifdef SQLITE_OMIT_DECLTYPE |
| 216 "OMIT_DECLTYPE", | 225 "OMIT_DECLTYPE", |
| 217 #endif | 226 #endif |
| 218 #ifdef SQLITE_OMIT_DEPRECATED | 227 #ifdef SQLITE_OMIT_DEPRECATED |
| 219 "OMIT_DEPRECATED", | 228 "OMIT_DEPRECATED", |
| 220 #endif | 229 #endif |
| 221 #ifdef SQLITE_OMIT_DISKIO | 230 #ifdef SQLITE_OMIT_DISKIO |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 322 #endif | 331 #endif |
| 323 #ifdef SQLITE_OMIT_XFER_OPT | 332 #ifdef SQLITE_OMIT_XFER_OPT |
| 324 "OMIT_XFER_OPT", | 333 "OMIT_XFER_OPT", |
| 325 #endif | 334 #endif |
| 326 #ifdef SQLITE_PERFORMANCE_TRACE | 335 #ifdef SQLITE_PERFORMANCE_TRACE |
| 327 "PERFORMANCE_TRACE", | 336 "PERFORMANCE_TRACE", |
| 328 #endif | 337 #endif |
| 329 #ifdef SQLITE_PROXY_DEBUG | 338 #ifdef SQLITE_PROXY_DEBUG |
| 330 "PROXY_DEBUG", | 339 "PROXY_DEBUG", |
| 331 #endif | 340 #endif |
| 341 #ifdef SQLITE_RTREE_INT_ONLY |
| 342 "RTREE_INT_ONLY", |
| 343 #endif |
| 332 #ifdef SQLITE_SECURE_DELETE | 344 #ifdef SQLITE_SECURE_DELETE |
| 333 "SECURE_DELETE", | 345 "SECURE_DELETE", |
| 334 #endif | 346 #endif |
| 335 #ifdef SQLITE_SMALL_STACK | 347 #ifdef SQLITE_SMALL_STACK |
| 336 "SMALL_STACK", | 348 "SMALL_STACK", |
| 337 #endif | 349 #endif |
| 338 #ifdef SQLITE_SOUNDEX | 350 #ifdef SQLITE_SOUNDEX |
| 339 "SOUNDEX", | 351 "SOUNDEX", |
| 340 #endif | 352 #endif |
| 353 #ifdef SQLITE_SYSTEM_MALLOC |
| 354 "SYSTEM_MALLOC", |
| 355 #endif |
| 341 #ifdef SQLITE_TCL | 356 #ifdef SQLITE_TCL |
| 342 "TCL", | 357 "TCL", |
| 343 #endif | 358 #endif |
| 344 #ifdef SQLITE_TEMP_STORE | 359 #if defined(SQLITE_TEMP_STORE) && !defined(SQLITE_TEMP_STORE_xc) |
| 345 "TEMP_STORE=" CTIMEOPT_VAL(SQLITE_TEMP_STORE), | 360 "TEMP_STORE=" CTIMEOPT_VAL(SQLITE_TEMP_STORE), |
| 346 #endif | 361 #endif |
| 347 #ifdef SQLITE_TEST | 362 #ifdef SQLITE_TEST |
| 348 "TEST", | 363 "TEST", |
| 349 #endif | 364 #endif |
| 350 #ifdef SQLITE_THREADSAFE | 365 #if defined(SQLITE_THREADSAFE) |
| 351 "THREADSAFE=" CTIMEOPT_VAL(SQLITE_THREADSAFE), | 366 "THREADSAFE=" CTIMEOPT_VAL(SQLITE_THREADSAFE), |
| 352 #endif | 367 #endif |
| 353 #ifdef SQLITE_USE_ALLOCA | 368 #ifdef SQLITE_USE_ALLOCA |
| 354 "USE_ALLOCA", | 369 "USE_ALLOCA", |
| 355 #endif | 370 #endif |
| 371 #ifdef SQLITE_USER_AUTHENTICATION |
| 372 "USER_AUTHENTICATION", |
| 373 #endif |
| 374 #ifdef SQLITE_WIN32_MALLOC |
| 375 "WIN32_MALLOC", |
| 376 #endif |
| 356 #ifdef SQLITE_ZERO_MALLOC | 377 #ifdef SQLITE_ZERO_MALLOC |
| 357 "ZERO_MALLOC" | 378 "ZERO_MALLOC" |
| 358 #endif | 379 #endif |
| 359 }; | 380 }; |
| 360 | 381 |
| 361 /* | 382 /* |
| 362 ** Given the name of a compile-time option, return true if that option | 383 ** Given the name of a compile-time option, return true if that option |
| 363 ** was used and false if not. | 384 ** was used and false if not. |
| 364 ** | 385 ** |
| 365 ** The name can optionally begin with "SQLITE_" but the "SQLITE_" prefix | 386 ** The name can optionally begin with "SQLITE_" but the "SQLITE_" prefix |
| 366 ** is not required for a match. | 387 ** is not required for a match. |
| 367 */ | 388 */ |
| 368 int sqlite3_compileoption_used(const char *zOptName){ | 389 int sqlite3_compileoption_used(const char *zOptName){ |
| 369 int i, n; | 390 int i, n; |
| 370 if( sqlite3StrNICmp(zOptName, "SQLITE_", 7)==0 ) zOptName += 7; | 391 if( sqlite3StrNICmp(zOptName, "SQLITE_", 7)==0 ) zOptName += 7; |
| 371 n = sqlite3Strlen30(zOptName); | 392 n = sqlite3Strlen30(zOptName); |
| 372 | 393 |
| 373 /* Since ArraySize(azCompileOpt) is normally in single digits, a | 394 /* Since ArraySize(azCompileOpt) is normally in single digits, a |
| 374 ** linear search is adequate. No need for a binary search. */ | 395 ** linear search is adequate. No need for a binary search. */ |
| 375 for(i=0; i<ArraySize(azCompileOpt); i++){ | 396 for(i=0; i<ArraySize(azCompileOpt); i++){ |
| 376 if( (sqlite3StrNICmp(zOptName, azCompileOpt[i], n)==0) | 397 if( sqlite3StrNICmp(zOptName, azCompileOpt[i], n)==0 |
| 377 && ( (azCompileOpt[i][n]==0) || (azCompileOpt[i][n]=='=') ) ) return 1; | 398 && sqlite3IsIdChar((unsigned char)azCompileOpt[i][n])==0 |
| 399 ){ |
| 400 return 1; |
| 401 } |
| 378 } | 402 } |
| 379 return 0; | 403 return 0; |
| 380 } | 404 } |
| 381 | 405 |
| 382 /* | 406 /* |
| 383 ** Return the N-th compile-time option string. If N is out of range, | 407 ** Return the N-th compile-time option string. If N is out of range, |
| 384 ** return a NULL pointer. | 408 ** return a NULL pointer. |
| 385 */ | 409 */ |
| 386 const char *sqlite3_compileoption_get(int N){ | 410 const char *sqlite3_compileoption_get(int N){ |
| 387 if( N>=0 && N<ArraySize(azCompileOpt) ){ | 411 if( N>=0 && N<ArraySize(azCompileOpt) ){ |
| 388 return azCompileOpt[N]; | 412 return azCompileOpt[N]; |
| 389 } | 413 } |
| 390 return 0; | 414 return 0; |
| 391 } | 415 } |
| 392 | 416 |
| 393 #endif /* SQLITE_OMIT_COMPILEOPTION_DIAGS */ | 417 #endif /* SQLITE_OMIT_COMPILEOPTION_DIAGS */ |
| OLD | NEW |