1 /* 2 ** 2010 February 23 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 implements routines used to report what compile-time options 14 ** SQLite was built with. 15 */ 16 #ifndef SQLITE_OMIT_COMPILEOPTION_DIAGS /* IMP: R-16824-07538 */ 17 18 /* 19 ** Include the configuration header output by 'configure' if we're using the 20 ** autoconf-based build 21 */ 22 #if defined(_HAVE_SQLITE_CONFIG_H) && !defined(SQLITECONFIG_H) 23 #include "config.h" 24 #define SQLITECONFIG_H 1 25 #endif 26 27 /* These macros are provided to "stringify" the value of the define 28 ** for those options in which the value is meaningful. */ 29 #define CTIMEOPT_VAL_(opt) #opt 30 #define CTIMEOPT_VAL(opt) CTIMEOPT_VAL_(opt) 31 32 /* Like CTIMEOPT_VAL, but especially for SQLITE_DEFAULT_LOOKASIDE. This 33 ** option requires a separate macro because legal values contain a single 34 ** comma. e.g. (-DSQLITE_DEFAULT_LOOKASIDE="100,100") */ 35 #define CTIMEOPT_VAL2_(opt1,opt2) #opt1 "," #opt2 36 #define CTIMEOPT_VAL2(opt) CTIMEOPT_VAL2_(opt) 37 #include "sqliteInt.h" 38 39 /* 40 ** An array of names of all compile-time options. This array should 41 ** be sorted A-Z. 42 ** 43 ** This array looks large, but in a typical installation actually uses 44 ** only a handful of compile-time options, so most times this array is usually 45 ** rather short and uses little memory space. 46 */ 47 static const char * const sqlite3azCompileOpt[] = { 48 49 /* 50 ** BEGIN CODE GENERATED BY tool/mkctime.tcl 51 */ 52 #ifdef SQLITE_32BIT_ROWID 53 "32BIT_ROWID", 54 #endif 55 #ifdef SQLITE_4_BYTE_ALIGNED_MALLOC 56 "4_BYTE_ALIGNED_MALLOC", 57 #endif 58 #ifdef SQLITE_64BIT_STATS 59 "64BIT_STATS", 60 #endif 61 #ifdef SQLITE_ALLOW_COVERING_INDEX_SCAN 62 # if SQLITE_ALLOW_COVERING_INDEX_SCAN != 1 63 "ALLOW_COVERING_INDEX_SCAN=" CTIMEOPT_VAL(SQLITE_ALLOW_COVERING_INDEX_SCAN), 64 # endif 65 #endif 66 #ifdef SQLITE_ALLOW_URI_AUTHORITY 67 "ALLOW_URI_AUTHORITY", 68 #endif 69 #ifdef SQLITE_ATOMIC_INTRINSICS 70 "ATOMIC_INTRINSICS=" CTIMEOPT_VAL(SQLITE_ATOMIC_INTRINSICS), 71 #endif 72 #ifdef SQLITE_BITMASK_TYPE 73 "BITMASK_TYPE=" CTIMEOPT_VAL(SQLITE_BITMASK_TYPE), 74 #endif 75 #ifdef SQLITE_BUG_COMPATIBLE_20160819 76 "BUG_COMPATIBLE_20160819", 77 #endif 78 #ifdef SQLITE_CASE_SENSITIVE_LIKE 79 "CASE_SENSITIVE_LIKE", 80 #endif 81 #ifdef SQLITE_CHECK_PAGES 82 "CHECK_PAGES", 83 #endif 84 #if defined(__clang__) && defined(__clang_major__) 85 "COMPILER=clang-" CTIMEOPT_VAL(__clang_major__) "." 86 CTIMEOPT_VAL(__clang_minor__) "." 87 CTIMEOPT_VAL(__clang_patchlevel__), 88 #elif defined(_MSC_VER) 89 "COMPILER=msvc-" CTIMEOPT_VAL(_MSC_VER), 90 #elif defined(__GNUC__) && defined(__VERSION__) 91 "COMPILER=gcc-" __VERSION__, 92 #endif 93 #ifdef SQLITE_COVERAGE_TEST 94 "COVERAGE_TEST", 95 #endif 96 #ifdef SQLITE_DEBUG 97 "DEBUG", 98 #endif 99 #ifdef SQLITE_DEFAULT_AUTOMATIC_INDEX 100 "DEFAULT_AUTOMATIC_INDEX", 101 #endif 102 #ifdef SQLITE_DEFAULT_AUTOVACUUM 103 "DEFAULT_AUTOVACUUM", 104 #endif 105 #ifdef SQLITE_DEFAULT_CACHE_SIZE 106 "DEFAULT_CACHE_SIZE=" CTIMEOPT_VAL(SQLITE_DEFAULT_CACHE_SIZE), 107 #endif 108 #ifdef SQLITE_DEFAULT_CKPTFULLFSYNC 109 "DEFAULT_CKPTFULLFSYNC", 110 #endif 111 #ifdef SQLITE_DEFAULT_FILE_FORMAT 112 "DEFAULT_FILE_FORMAT=" CTIMEOPT_VAL(SQLITE_DEFAULT_FILE_FORMAT), 113 #endif 114 #ifdef SQLITE_DEFAULT_FILE_PERMISSIONS 115 "DEFAULT_FILE_PERMISSIONS=" CTIMEOPT_VAL(SQLITE_DEFAULT_FILE_PERMISSIONS), 116 #endif 117 #ifdef SQLITE_DEFAULT_FOREIGN_KEYS 118 "DEFAULT_FOREIGN_KEYS", 119 #endif 120 #ifdef SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT 121 "DEFAULT_JOURNAL_SIZE_LIMIT=" CTIMEOPT_VAL(SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT), 122 #endif 123 #ifdef SQLITE_DEFAULT_LOCKING_MODE 124 "DEFAULT_LOCKING_MODE=" CTIMEOPT_VAL(SQLITE_DEFAULT_LOCKING_MODE), 125 #endif 126 #ifdef SQLITE_DEFAULT_LOOKASIDE 127 "DEFAULT_LOOKASIDE=" CTIMEOPT_VAL2(SQLITE_DEFAULT_LOOKASIDE), 128 #endif 129 #ifdef SQLITE_DEFAULT_MEMSTATUS 130 # if SQLITE_DEFAULT_MEMSTATUS != 1 131 "DEFAULT_MEMSTATUS=" CTIMEOPT_VAL(SQLITE_DEFAULT_MEMSTATUS), 132 # endif 133 #endif 134 #ifdef SQLITE_DEFAULT_MMAP_SIZE 135 "DEFAULT_MMAP_SIZE=" CTIMEOPT_VAL(SQLITE_DEFAULT_MMAP_SIZE), 136 #endif 137 #ifdef SQLITE_DEFAULT_PAGE_SIZE 138 "DEFAULT_PAGE_SIZE=" CTIMEOPT_VAL(SQLITE_DEFAULT_PAGE_SIZE), 139 #endif 140 #ifdef SQLITE_DEFAULT_PCACHE_INITSZ 141 "DEFAULT_PCACHE_INITSZ=" CTIMEOPT_VAL(SQLITE_DEFAULT_PCACHE_INITSZ), 142 #endif 143 #ifdef SQLITE_DEFAULT_PROXYDIR_PERMISSIONS 144 "DEFAULT_PROXYDIR_PERMISSIONS=" CTIMEOPT_VAL(SQLITE_DEFAULT_PROXYDIR_PERMISSIONS), 145 #endif 146 #ifdef SQLITE_DEFAULT_RECURSIVE_TRIGGERS 147 "DEFAULT_RECURSIVE_TRIGGERS", 148 #endif 149 #ifdef SQLITE_DEFAULT_ROWEST 150 "DEFAULT_ROWEST=" CTIMEOPT_VAL(SQLITE_DEFAULT_ROWEST), 151 #endif 152 #ifdef SQLITE_DEFAULT_SECTOR_SIZE 153 "DEFAULT_SECTOR_SIZE=" CTIMEOPT_VAL(SQLITE_DEFAULT_SECTOR_SIZE), 154 #endif 155 #ifdef SQLITE_DEFAULT_SYNCHRONOUS 156 "DEFAULT_SYNCHRONOUS=" CTIMEOPT_VAL(SQLITE_DEFAULT_SYNCHRONOUS), 157 #endif 158 #ifdef SQLITE_DEFAULT_WAL_AUTOCHECKPOINT 159 "DEFAULT_WAL_AUTOCHECKPOINT=" CTIMEOPT_VAL(SQLITE_DEFAULT_WAL_AUTOCHECKPOINT), 160 #endif 161 #ifdef SQLITE_DEFAULT_WAL_SYNCHRONOUS 162 "DEFAULT_WAL_SYNCHRONOUS=" CTIMEOPT_VAL(SQLITE_DEFAULT_WAL_SYNCHRONOUS), 163 #endif 164 #ifdef SQLITE_DEFAULT_WORKER_THREADS 165 "DEFAULT_WORKER_THREADS=" CTIMEOPT_VAL(SQLITE_DEFAULT_WORKER_THREADS), 166 #endif 167 #ifdef SQLITE_DIRECT_OVERFLOW_READ 168 "DIRECT_OVERFLOW_READ", 169 #endif 170 #ifdef SQLITE_DISABLE_DIRSYNC 171 "DISABLE_DIRSYNC", 172 #endif 173 #ifdef SQLITE_DISABLE_FTS3_UNICODE 174 "DISABLE_FTS3_UNICODE", 175 #endif 176 #ifdef SQLITE_DISABLE_FTS4_DEFERRED 177 "DISABLE_FTS4_DEFERRED", 178 #endif 179 #ifdef SQLITE_DISABLE_INTRINSIC 180 "DISABLE_INTRINSIC", 181 #endif 182 #ifdef SQLITE_DISABLE_JSON 183 "DISABLE_JSON", 184 #else 185 "ENABLE_JSON1", /* Legacy */ 186 #endif 187 #ifdef SQLITE_DISABLE_LFS 188 "DISABLE_LFS", 189 #endif 190 #ifdef SQLITE_DISABLE_PAGECACHE_OVERFLOW_STATS 191 "DISABLE_PAGECACHE_OVERFLOW_STATS", 192 #endif 193 #ifdef SQLITE_DISABLE_SKIPAHEAD_DISTINCT 194 "DISABLE_SKIPAHEAD_DISTINCT", 195 #endif 196 #ifdef SQLITE_ENABLE_8_3_NAMES 197 "ENABLE_8_3_NAMES=" CTIMEOPT_VAL(SQLITE_ENABLE_8_3_NAMES), 198 #endif 199 #ifdef SQLITE_ENABLE_API_ARMOR 200 "ENABLE_API_ARMOR", 201 #endif 202 #ifdef SQLITE_ENABLE_ATOMIC_WRITE 203 "ENABLE_ATOMIC_WRITE", 204 #endif 205 #ifdef SQLITE_ENABLE_BATCH_ATOMIC_WRITE 206 "ENABLE_BATCH_ATOMIC_WRITE", 207 #endif 208 #ifdef SQLITE_ENABLE_BYTECODE_VTAB 209 "ENABLE_BYTECODE_VTAB", 210 #endif 211 #ifdef SQLITE_ENABLE_CEROD 212 "ENABLE_CEROD=" CTIMEOPT_VAL(SQLITE_ENABLE_CEROD), 213 #endif 214 #ifdef SQLITE_ENABLE_COLUMN_METADATA 215 "ENABLE_COLUMN_METADATA", 216 #endif 217 #ifdef SQLITE_ENABLE_COLUMN_USED_MASK 218 "ENABLE_COLUMN_USED_MASK", 219 #endif 220 #ifdef SQLITE_ENABLE_COSTMULT 221 "ENABLE_COSTMULT", 222 #endif 223 #ifdef SQLITE_ENABLE_CURSOR_HINTS 224 "ENABLE_CURSOR_HINTS", 225 #endif 226 #ifdef SQLITE_ENABLE_DBPAGE_VTAB 227 "ENABLE_DBPAGE_VTAB", 228 #endif 229 #ifdef SQLITE_ENABLE_DBSTAT_VTAB 230 "ENABLE_DBSTAT_VTAB", 231 #endif 232 #ifdef SQLITE_ENABLE_EXPENSIVE_ASSERT 233 "ENABLE_EXPENSIVE_ASSERT", 234 #endif 235 #ifdef SQLITE_ENABLE_EXPLAIN_COMMENTS 236 "ENABLE_EXPLAIN_COMMENTS", 237 #endif 238 #ifdef SQLITE_ENABLE_FTS3 239 "ENABLE_FTS3", 240 #endif 241 #ifdef SQLITE_ENABLE_FTS3_PARENTHESIS 242 "ENABLE_FTS3_PARENTHESIS", 243 #endif 244 #ifdef SQLITE_ENABLE_FTS3_TOKENIZER 245 "ENABLE_FTS3_TOKENIZER", 246 #endif 247 #ifdef SQLITE_ENABLE_FTS4 248 "ENABLE_FTS4", 249 #endif 250 #ifdef SQLITE_ENABLE_FTS5 251 "ENABLE_FTS5", 252 #endif 253 #ifdef SQLITE_ENABLE_GEOPOLY 254 "ENABLE_GEOPOLY", 255 #endif 256 #ifdef SQLITE_ENABLE_HIDDEN_COLUMNS 257 "ENABLE_HIDDEN_COLUMNS", 258 #endif 259 #ifdef SQLITE_ENABLE_ICU 260 "ENABLE_ICU", 261 #endif 262 #ifdef SQLITE_ENABLE_IOTRACE 263 "ENABLE_IOTRACE", 264 #endif 265 #ifdef SQLITE_ENABLE_LOAD_EXTENSION 266 "ENABLE_LOAD_EXTENSION", 267 #endif 268 #ifdef SQLITE_ENABLE_LOCKING_STYLE 269 "ENABLE_LOCKING_STYLE=" CTIMEOPT_VAL(SQLITE_ENABLE_LOCKING_STYLE), 270 #endif 271 #ifdef SQLITE_ENABLE_MATH_FUNCTIONS 272 "ENABLE_MATH_FUNCTIONS", 273 #endif 274 #ifdef SQLITE_ENABLE_MEMORY_MANAGEMENT 275 "ENABLE_MEMORY_MANAGEMENT", 276 #endif 277 #ifdef SQLITE_ENABLE_MEMSYS3 278 "ENABLE_MEMSYS3", 279 #endif 280 #ifdef SQLITE_ENABLE_MEMSYS5 281 "ENABLE_MEMSYS5", 282 #endif 283 #ifdef SQLITE_ENABLE_MULTIPLEX 284 "ENABLE_MULTIPLEX", 285 #endif 286 #ifdef SQLITE_ENABLE_NORMALIZE 287 "ENABLE_NORMALIZE", 288 #endif 289 #ifdef SQLITE_ENABLE_NULL_TRIM 290 "ENABLE_NULL_TRIM", 291 #endif 292 #ifdef SQLITE_ENABLE_OFFSET_SQL_FUNC 293 "ENABLE_OFFSET_SQL_FUNC", 294 #endif 295 #ifdef SQLITE_ENABLE_OVERSIZE_CELL_CHECK 296 "ENABLE_OVERSIZE_CELL_CHECK", 297 #endif 298 #ifdef SQLITE_ENABLE_PREUPDATE_HOOK 299 "ENABLE_PREUPDATE_HOOK", 300 #endif 301 #ifdef SQLITE_ENABLE_QPSG 302 "ENABLE_QPSG", 303 #endif 304 #ifdef SQLITE_ENABLE_RBU 305 "ENABLE_RBU", 306 #endif 307 #ifdef SQLITE_ENABLE_RTREE 308 "ENABLE_RTREE", 309 #endif 310 #ifdef SQLITE_ENABLE_SELECTTRACE 311 "ENABLE_SELECTTRACE", 312 #endif 313 #ifdef SQLITE_ENABLE_SESSION 314 "ENABLE_SESSION", 315 #endif 316 #ifdef SQLITE_ENABLE_SNAPSHOT 317 "ENABLE_SNAPSHOT", 318 #endif 319 #ifdef SQLITE_ENABLE_SORTER_REFERENCES 320 "ENABLE_SORTER_REFERENCES", 321 #endif 322 #ifdef SQLITE_ENABLE_SQLLOG 323 "ENABLE_SQLLOG", 324 #endif 325 #ifdef SQLITE_ENABLE_STAT4 326 "ENABLE_STAT4", 327 #endif 328 #ifdef SQLITE_ENABLE_STMTVTAB 329 "ENABLE_STMTVTAB", 330 #endif 331 #ifdef SQLITE_ENABLE_STMT_SCANSTATUS 332 "ENABLE_STMT_SCANSTATUS", 333 #endif 334 #ifdef SQLITE_ENABLE_UNKNOWN_SQL_FUNCTION 335 "ENABLE_UNKNOWN_SQL_FUNCTION", 336 #endif 337 #ifdef SQLITE_ENABLE_UNLOCK_NOTIFY 338 "ENABLE_UNLOCK_NOTIFY", 339 #endif 340 #ifdef SQLITE_ENABLE_UPDATE_DELETE_LIMIT 341 "ENABLE_UPDATE_DELETE_LIMIT", 342 #endif 343 #ifdef SQLITE_ENABLE_URI_00_ERROR 344 "ENABLE_URI_00_ERROR", 345 #endif 346 #ifdef SQLITE_ENABLE_VFSTRACE 347 "ENABLE_VFSTRACE", 348 #endif 349 #ifdef SQLITE_ENABLE_WHERETRACE 350 "ENABLE_WHERETRACE", 351 #endif 352 #ifdef SQLITE_ENABLE_ZIPVFS 353 "ENABLE_ZIPVFS", 354 #endif 355 #ifdef SQLITE_EXPLAIN_ESTIMATED_ROWS 356 "EXPLAIN_ESTIMATED_ROWS", 357 #endif 358 #ifdef SQLITE_EXTRA_IFNULLROW 359 "EXTRA_IFNULLROW", 360 #endif 361 #ifdef SQLITE_EXTRA_INIT 362 "EXTRA_INIT=" CTIMEOPT_VAL(SQLITE_EXTRA_INIT), 363 #endif 364 #ifdef SQLITE_EXTRA_SHUTDOWN 365 "EXTRA_SHUTDOWN=" CTIMEOPT_VAL(SQLITE_EXTRA_SHUTDOWN), 366 #endif 367 #ifdef SQLITE_FTS3_MAX_EXPR_DEPTH 368 "FTS3_MAX_EXPR_DEPTH=" CTIMEOPT_VAL(SQLITE_FTS3_MAX_EXPR_DEPTH), 369 #endif 370 #ifdef SQLITE_FTS5_ENABLE_TEST_MI 371 "FTS5_ENABLE_TEST_MI", 372 #endif 373 #ifdef SQLITE_FTS5_NO_WITHOUT_ROWID 374 "FTS5_NO_WITHOUT_ROWID", 375 #endif 376 #if HAVE_ISNAN || SQLITE_HAVE_ISNAN 377 "HAVE_ISNAN", 378 #endif 379 #ifdef SQLITE_HOMEGROWN_RECURSIVE_MUTEX 380 # if SQLITE_HOMEGROWN_RECURSIVE_MUTEX != 1 381 "HOMEGROWN_RECURSIVE_MUTEX=" CTIMEOPT_VAL(SQLITE_HOMEGROWN_RECURSIVE_MUTEX), 382 # endif 383 #endif 384 #ifdef SQLITE_IGNORE_AFP_LOCK_ERRORS 385 "IGNORE_AFP_LOCK_ERRORS", 386 #endif 387 #ifdef SQLITE_IGNORE_FLOCK_LOCK_ERRORS 388 "IGNORE_FLOCK_LOCK_ERRORS", 389 #endif 390 #ifdef SQLITE_INLINE_MEMCPY 391 "INLINE_MEMCPY", 392 #endif 393 #ifdef SQLITE_INT64_TYPE 394 "INT64_TYPE", 395 #endif 396 #ifdef SQLITE_INTEGRITY_CHECK_ERROR_MAX 397 "INTEGRITY_CHECK_ERROR_MAX=" CTIMEOPT_VAL(SQLITE_INTEGRITY_CHECK_ERROR_MAX), 398 #endif 399 #ifdef SQLITE_LIKE_DOESNT_MATCH_BLOBS 400 "LIKE_DOESNT_MATCH_BLOBS", 401 #endif 402 #ifdef SQLITE_LOCK_TRACE 403 "LOCK_TRACE", 404 #endif 405 #ifdef SQLITE_LOG_CACHE_SPILL 406 "LOG_CACHE_SPILL", 407 #endif 408 #ifdef SQLITE_MALLOC_SOFT_LIMIT 409 "MALLOC_SOFT_LIMIT=" CTIMEOPT_VAL(SQLITE_MALLOC_SOFT_LIMIT), 410 #endif 411 #ifdef SQLITE_MAX_ATTACHED 412 "MAX_ATTACHED=" CTIMEOPT_VAL(SQLITE_MAX_ATTACHED), 413 #endif 414 #ifdef SQLITE_MAX_COLUMN 415 "MAX_COLUMN=" CTIMEOPT_VAL(SQLITE_MAX_COLUMN), 416 #endif 417 #ifdef SQLITE_MAX_COMPOUND_SELECT 418 "MAX_COMPOUND_SELECT=" CTIMEOPT_VAL(SQLITE_MAX_COMPOUND_SELECT), 419 #endif 420 #ifdef SQLITE_MAX_DEFAULT_PAGE_SIZE 421 "MAX_DEFAULT_PAGE_SIZE=" CTIMEOPT_VAL(SQLITE_MAX_DEFAULT_PAGE_SIZE), 422 #endif 423 #ifdef SQLITE_MAX_EXPR_DEPTH 424 "MAX_EXPR_DEPTH=" CTIMEOPT_VAL(SQLITE_MAX_EXPR_DEPTH), 425 #endif 426 #ifdef SQLITE_MAX_FUNCTION_ARG 427 "MAX_FUNCTION_ARG=" CTIMEOPT_VAL(SQLITE_MAX_FUNCTION_ARG), 428 #endif 429 #ifdef SQLITE_MAX_LENGTH 430 "MAX_LENGTH=" CTIMEOPT_VAL(SQLITE_MAX_LENGTH), 431 #endif 432 #ifdef SQLITE_MAX_LIKE_PATTERN_LENGTH 433 "MAX_LIKE_PATTERN_LENGTH=" CTIMEOPT_VAL(SQLITE_MAX_LIKE_PATTERN_LENGTH), 434 #endif 435 #ifdef SQLITE_MAX_MEMORY 436 "MAX_MEMORY=" CTIMEOPT_VAL(SQLITE_MAX_MEMORY), 437 #endif 438 #ifdef SQLITE_MAX_MMAP_SIZE 439 "MAX_MMAP_SIZE=" CTIMEOPT_VAL(SQLITE_MAX_MMAP_SIZE), 440 #endif 441 #ifdef SQLITE_MAX_MMAP_SIZE_ 442 "MAX_MMAP_SIZE_=" CTIMEOPT_VAL(SQLITE_MAX_MMAP_SIZE_), 443 #endif 444 #ifdef SQLITE_MAX_PAGE_COUNT 445 "MAX_PAGE_COUNT=" CTIMEOPT_VAL(SQLITE_MAX_PAGE_COUNT), 446 #endif 447 #ifdef SQLITE_MAX_PAGE_SIZE 448 "MAX_PAGE_SIZE=" CTIMEOPT_VAL(SQLITE_MAX_PAGE_SIZE), 449 #endif 450 #ifdef SQLITE_MAX_SCHEMA_RETRY 451 "MAX_SCHEMA_RETRY=" CTIMEOPT_VAL(SQLITE_MAX_SCHEMA_RETRY), 452 #endif 453 #ifdef SQLITE_MAX_SQL_LENGTH 454 "MAX_SQL_LENGTH=" CTIMEOPT_VAL(SQLITE_MAX_SQL_LENGTH), 455 #endif 456 #ifdef SQLITE_MAX_TRIGGER_DEPTH 457 "MAX_TRIGGER_DEPTH=" CTIMEOPT_VAL(SQLITE_MAX_TRIGGER_DEPTH), 458 #endif 459 #ifdef SQLITE_MAX_VARIABLE_NUMBER 460 "MAX_VARIABLE_NUMBER=" CTIMEOPT_VAL(SQLITE_MAX_VARIABLE_NUMBER), 461 #endif 462 #ifdef SQLITE_MAX_VDBE_OP 463 "MAX_VDBE_OP=" CTIMEOPT_VAL(SQLITE_MAX_VDBE_OP), 464 #endif 465 #ifdef SQLITE_MAX_WORKER_THREADS 466 "MAX_WORKER_THREADS=" CTIMEOPT_VAL(SQLITE_MAX_WORKER_THREADS), 467 #endif 468 #ifdef SQLITE_MEMDEBUG 469 "MEMDEBUG", 470 #endif 471 #ifdef SQLITE_MIXED_ENDIAN_64BIT_FLOAT 472 "MIXED_ENDIAN_64BIT_FLOAT", 473 #endif 474 #ifdef SQLITE_MMAP_READWRITE 475 "MMAP_READWRITE", 476 #endif 477 #ifdef SQLITE_MUTEX_NOOP 478 "MUTEX_NOOP", 479 #endif 480 #ifdef SQLITE_MUTEX_OMIT 481 "MUTEX_OMIT", 482 #endif 483 #ifdef SQLITE_MUTEX_PTHREADS 484 "MUTEX_PTHREADS", 485 #endif 486 #ifdef SQLITE_MUTEX_W32 487 "MUTEX_W32", 488 #endif 489 #ifdef SQLITE_NEED_ERR_NAME 490 "NEED_ERR_NAME", 491 #endif 492 #ifdef SQLITE_NO_SYNC 493 "NO_SYNC", 494 #endif 495 #ifdef SQLITE_OMIT_ALTERTABLE 496 "OMIT_ALTERTABLE", 497 #endif 498 #ifdef SQLITE_OMIT_ANALYZE 499 "OMIT_ANALYZE", 500 #endif 501 #ifdef SQLITE_OMIT_ATTACH 502 "OMIT_ATTACH", 503 #endif 504 #ifdef SQLITE_OMIT_AUTHORIZATION 505 "OMIT_AUTHORIZATION", 506 #endif 507 #ifdef SQLITE_OMIT_AUTOINCREMENT 508 "OMIT_AUTOINCREMENT", 509 #endif 510 #ifdef SQLITE_OMIT_AUTOINIT 511 "OMIT_AUTOINIT", 512 #endif 513 #ifdef SQLITE_OMIT_AUTOMATIC_INDEX 514 "OMIT_AUTOMATIC_INDEX", 515 #endif 516 #ifdef SQLITE_OMIT_AUTORESET 517 "OMIT_AUTORESET", 518 #endif 519 #ifdef SQLITE_OMIT_AUTOVACUUM 520 "OMIT_AUTOVACUUM", 521 #endif 522 #ifdef SQLITE_OMIT_BETWEEN_OPTIMIZATION 523 "OMIT_BETWEEN_OPTIMIZATION", 524 #endif 525 #ifdef SQLITE_OMIT_BLOB_LITERAL 526 "OMIT_BLOB_LITERAL", 527 #endif 528 #ifdef SQLITE_OMIT_CAST 529 "OMIT_CAST", 530 #endif 531 #ifdef SQLITE_OMIT_CHECK 532 "OMIT_CHECK", 533 #endif 534 #ifdef SQLITE_OMIT_COMPLETE 535 "OMIT_COMPLETE", 536 #endif 537 #ifdef SQLITE_OMIT_COMPOUND_SELECT 538 "OMIT_COMPOUND_SELECT", 539 #endif 540 #ifdef SQLITE_OMIT_CONFLICT_CLAUSE 541 "OMIT_CONFLICT_CLAUSE", 542 #endif 543 #ifdef SQLITE_OMIT_CTE 544 "OMIT_CTE", 545 #endif 546 #if defined(SQLITE_OMIT_DATETIME_FUNCS) || defined(SQLITE_OMIT_FLOATING_POINT) 547 "OMIT_DATETIME_FUNCS", 548 #endif 549 #ifdef SQLITE_OMIT_DECLTYPE 550 "OMIT_DECLTYPE", 551 #endif 552 #ifdef SQLITE_OMIT_DEPRECATED 553 "OMIT_DEPRECATED", 554 #endif 555 #ifdef SQLITE_OMIT_DESERIALIZE 556 "OMIT_DESERIALIZE", 557 #endif 558 #ifdef SQLITE_OMIT_DISKIO 559 "OMIT_DISKIO", 560 #endif 561 #ifdef SQLITE_OMIT_EXPLAIN 562 "OMIT_EXPLAIN", 563 #endif 564 #ifdef SQLITE_OMIT_FLAG_PRAGMAS 565 "OMIT_FLAG_PRAGMAS", 566 #endif 567 #ifdef SQLITE_OMIT_FLOATING_POINT 568 "OMIT_FLOATING_POINT", 569 #endif 570 #ifdef SQLITE_OMIT_FOREIGN_KEY 571 "OMIT_FOREIGN_KEY", 572 #endif 573 #ifdef SQLITE_OMIT_GET_TABLE 574 "OMIT_GET_TABLE", 575 #endif 576 #ifdef SQLITE_OMIT_HEX_INTEGER 577 "OMIT_HEX_INTEGER", 578 #endif 579 #ifdef SQLITE_OMIT_INCRBLOB 580 "OMIT_INCRBLOB", 581 #endif 582 #ifdef SQLITE_OMIT_INTEGRITY_CHECK 583 "OMIT_INTEGRITY_CHECK", 584 #endif 585 #ifdef SQLITE_OMIT_INTROSPECTION_PRAGMAS 586 "OMIT_INTROSPECTION_PRAGMAS", 587 #endif 588 #ifdef SQLITE_OMIT_LIKE_OPTIMIZATION 589 "OMIT_LIKE_OPTIMIZATION", 590 #endif 591 #ifdef SQLITE_OMIT_LOAD_EXTENSION 592 "OMIT_LOAD_EXTENSION", 593 #endif 594 #ifdef SQLITE_OMIT_LOCALTIME 595 "OMIT_LOCALTIME", 596 #endif 597 #ifdef SQLITE_OMIT_LOOKASIDE 598 "OMIT_LOOKASIDE", 599 #endif 600 #ifdef SQLITE_OMIT_MEMORYDB 601 "OMIT_MEMORYDB", 602 #endif 603 #ifdef SQLITE_OMIT_OR_OPTIMIZATION 604 "OMIT_OR_OPTIMIZATION", 605 #endif 606 #ifdef SQLITE_OMIT_PAGER_PRAGMAS 607 "OMIT_PAGER_PRAGMAS", 608 #endif 609 #ifdef SQLITE_OMIT_PARSER_TRACE 610 "OMIT_PARSER_TRACE", 611 #endif 612 #ifdef SQLITE_OMIT_POPEN 613 "OMIT_POPEN", 614 #endif 615 #ifdef SQLITE_OMIT_PRAGMA 616 "OMIT_PRAGMA", 617 #endif 618 #ifdef SQLITE_OMIT_PROGRESS_CALLBACK 619 "OMIT_PROGRESS_CALLBACK", 620 #endif 621 #ifdef SQLITE_OMIT_QUICKBALANCE 622 "OMIT_QUICKBALANCE", 623 #endif 624 #ifdef SQLITE_OMIT_REINDEX 625 "OMIT_REINDEX", 626 #endif 627 #ifdef SQLITE_OMIT_SCHEMA_PRAGMAS 628 "OMIT_SCHEMA_PRAGMAS", 629 #endif 630 #ifdef SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS 631 "OMIT_SCHEMA_VERSION_PRAGMAS", 632 #endif 633 #ifdef SQLITE_OMIT_SHARED_CACHE 634 "OMIT_SHARED_CACHE", 635 #endif 636 #ifdef SQLITE_OMIT_SHUTDOWN_DIRECTORIES 637 "OMIT_SHUTDOWN_DIRECTORIES", 638 #endif 639 #ifdef SQLITE_OMIT_SUBQUERY 640 "OMIT_SUBQUERY", 641 #endif 642 #ifdef SQLITE_OMIT_TCL_VARIABLE 643 "OMIT_TCL_VARIABLE", 644 #endif 645 #ifdef SQLITE_OMIT_TEMPDB 646 "OMIT_TEMPDB", 647 #endif 648 #ifdef SQLITE_OMIT_TEST_CONTROL 649 "OMIT_TEST_CONTROL", 650 #endif 651 #ifdef SQLITE_OMIT_TRACE 652 # if SQLITE_OMIT_TRACE != 1 653 "OMIT_TRACE=" CTIMEOPT_VAL(SQLITE_OMIT_TRACE), 654 # endif 655 #endif 656 #ifdef SQLITE_OMIT_TRIGGER 657 "OMIT_TRIGGER", 658 #endif 659 #ifdef SQLITE_OMIT_TRUNCATE_OPTIMIZATION 660 "OMIT_TRUNCATE_OPTIMIZATION", 661 #endif 662 #ifdef SQLITE_OMIT_UTF16 663 "OMIT_UTF16", 664 #endif 665 #ifdef SQLITE_OMIT_VACUUM 666 "OMIT_VACUUM", 667 #endif 668 #ifdef SQLITE_OMIT_VIEW 669 "OMIT_VIEW", 670 #endif 671 #ifdef SQLITE_OMIT_VIRTUALTABLE 672 "OMIT_VIRTUALTABLE", 673 #endif 674 #ifdef SQLITE_OMIT_WAL 675 "OMIT_WAL", 676 #endif 677 #ifdef SQLITE_OMIT_WSD 678 "OMIT_WSD", 679 #endif 680 #ifdef SQLITE_OMIT_XFER_OPT 681 "OMIT_XFER_OPT", 682 #endif 683 #ifdef SQLITE_PCACHE_SEPARATE_HEADER 684 "PCACHE_SEPARATE_HEADER", 685 #endif 686 #ifdef SQLITE_PERFORMANCE_TRACE 687 "PERFORMANCE_TRACE", 688 #endif 689 #ifdef SQLITE_POWERSAFE_OVERWRITE 690 # if SQLITE_POWERSAFE_OVERWRITE != 1 691 "POWERSAFE_OVERWRITE=" CTIMEOPT_VAL(SQLITE_POWERSAFE_OVERWRITE), 692 # endif 693 #endif 694 #ifdef SQLITE_PREFER_PROXY_LOCKING 695 "PREFER_PROXY_LOCKING", 696 #endif 697 #ifdef SQLITE_PROXY_DEBUG 698 "PROXY_DEBUG", 699 #endif 700 #ifdef SQLITE_REVERSE_UNORDERED_SELECTS 701 "REVERSE_UNORDERED_SELECTS", 702 #endif 703 #ifdef SQLITE_RTREE_INT_ONLY 704 "RTREE_INT_ONLY", 705 #endif 706 #ifdef SQLITE_SECURE_DELETE 707 "SECURE_DELETE", 708 #endif 709 #ifdef SQLITE_SMALL_STACK 710 "SMALL_STACK", 711 #endif 712 #ifdef SQLITE_SORTER_PMASZ 713 "SORTER_PMASZ=" CTIMEOPT_VAL(SQLITE_SORTER_PMASZ), 714 #endif 715 #ifdef SQLITE_SOUNDEX 716 "SOUNDEX", 717 #endif 718 #ifdef SQLITE_STAT4_SAMPLES 719 "STAT4_SAMPLES=" CTIMEOPT_VAL(SQLITE_STAT4_SAMPLES), 720 #endif 721 #ifdef SQLITE_STMTJRNL_SPILL 722 "STMTJRNL_SPILL=" CTIMEOPT_VAL(SQLITE_STMTJRNL_SPILL), 723 #endif 724 #ifdef SQLITE_SUBSTR_COMPATIBILITY 725 "SUBSTR_COMPATIBILITY", 726 #endif 727 #if (!defined(SQLITE_WIN32_MALLOC) \ 728 && !defined(SQLITE_ZERO_MALLOC) \ 729 && !defined(SQLITE_MEMDEBUG) \ 730 ) || defined(SQLITE_SYSTEM_MALLOC) 731 "SYSTEM_MALLOC", 732 #endif 733 #ifdef SQLITE_TCL 734 "TCL", 735 #endif 736 #ifdef SQLITE_TEMP_STORE 737 "TEMP_STORE=" CTIMEOPT_VAL(SQLITE_TEMP_STORE), 738 #endif 739 #ifdef SQLITE_TEST 740 "TEST", 741 #endif 742 #if defined(SQLITE_THREADSAFE) 743 "THREADSAFE=" CTIMEOPT_VAL(SQLITE_THREADSAFE), 744 #elif defined(THREADSAFE) 745 "THREADSAFE=" CTIMEOPT_VAL(THREADSAFE), 746 #else 747 "THREADSAFE=1", 748 #endif 749 #ifdef SQLITE_UNLINK_AFTER_CLOSE 750 "UNLINK_AFTER_CLOSE", 751 #endif 752 #ifdef SQLITE_UNTESTABLE 753 "UNTESTABLE", 754 #endif 755 #ifdef SQLITE_USER_AUTHENTICATION 756 "USER_AUTHENTICATION", 757 #endif 758 #ifdef SQLITE_USE_ALLOCA 759 "USE_ALLOCA", 760 #endif 761 #ifdef SQLITE_USE_FCNTL_TRACE 762 "USE_FCNTL_TRACE", 763 #endif 764 #ifdef SQLITE_USE_URI 765 "USE_URI", 766 #endif 767 #ifdef SQLITE_VDBE_COVERAGE 768 "VDBE_COVERAGE", 769 #endif 770 #ifdef SQLITE_WIN32_MALLOC 771 "WIN32_MALLOC", 772 #endif 773 #ifdef SQLITE_ZERO_MALLOC 774 "ZERO_MALLOC", 775 #endif 776 /* 777 ** END CODE GENERATED BY tool/mkctime.tcl 778 */ 779 }; 780 781 const char **sqlite3CompileOptions(int *pnOpt){ 782 *pnOpt = sizeof(sqlite3azCompileOpt) / sizeof(sqlite3azCompileOpt[0]); 783 return (const char**)sqlite3azCompileOpt; 784 } 785 786 #endif /* SQLITE_OMIT_COMPILEOPTION_DIAGS */ 787