Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Ensure that the value of the THREADSAFE symbol is always included when reporting compile time options, even if it was not explicitly configured. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | ctime-refactor |
Files: | files | file ages | folders |
SHA3-256: |
95141c642697dc037e57f9e4992ff346 |
User & Date: | dan 2017-06-17 17:29:24.923 |
Context
2017-06-17
| ||
17:55 | Rework the code in ctime.c a bit to report on more compile time options. And to only output configuration options passed in to SQLite, not the default values of #define symbols set automatically. Also generate the large array in ctime.c using new script tool/mkctime.tcl, instead of entering it manually. (check-in: 9a443397a6 user: dan tags: trunk) | |
17:29 | Ensure that the value of the THREADSAFE symbol is always included when reporting compile time options, even if it was not explicitly configured. (Closed-Leaf check-in: 95141c6426 user: dan tags: ctime-refactor) | |
2017-06-16
| ||
19:51 | Rework the code in ctime.c a bit to report on more compile time options. And to only output configuration options passed in to SQLite, not the default values of #define symbols set automatically. Also generate the large array in ctime.c using new script tool/mkctime.tcl, instead of entering it manually. (check-in: bc1951d699 user: dan tags: ctime-refactor) | |
Changes
Changes to src/ctime.c.
︙ | ︙ | |||
684 685 686 687 688 689 690 | #endif #ifdef SQLITE_TEMP_STORE "TEMP_STORE=" CTIMEOPT_VAL(SQLITE_TEMP_STORE), #endif #if SQLITE_TEST "TEST", #endif | | > > > > | 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 | #endif #ifdef SQLITE_TEMP_STORE "TEMP_STORE=" CTIMEOPT_VAL(SQLITE_TEMP_STORE), #endif #if SQLITE_TEST "TEST", #endif #if defined(SQLITE_THREADSAFE) "THREADSAFE=" CTIMEOPT_VAL(SQLITE_THREADSAFE), #elif defined(THREADSAFE) "THREADSAFE=" CTIMEOPT_VAL(THREADSAFE), #else "THREADSAFE=1" #endif #if SQLITE_UNLINK_AFTER_CLOSE "UNLINK_AFTER_CLOSE", #endif #if SQLITE_UNTESTABLE "UNTESTABLE", #endif |
︙ | ︙ |
Changes to src/sqliteInt.h.
︙ | ︙ | |||
270 271 272 273 274 275 276 277 278 279 280 281 282 283 | ** threadsafe. 1 means the library is serialized which is the highest ** level of threadsafety. 2 means the library is multithreaded - multiple ** threads can use SQLite as long as no two threads try to use the same ** database connection at the same time. ** ** Older versions of SQLite used an optional THREADSAFE macro. ** We support that for legacy. */ #if !defined(SQLITE_THREADSAFE) # if defined(THREADSAFE) # define SQLITE_THREADSAFE THREADSAFE # else # define SQLITE_THREADSAFE 1 /* IMP: R-07272-22309 */ # endif | > > > > > | 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 | ** threadsafe. 1 means the library is serialized which is the highest ** level of threadsafety. 2 means the library is multithreaded - multiple ** threads can use SQLite as long as no two threads try to use the same ** database connection at the same time. ** ** Older versions of SQLite used an optional THREADSAFE macro. ** We support that for legacy. ** ** To ensure that the correct value of "THREADSAFE" is reported when querying ** for compile-time options at runtime (e.g. "PRAGMA compile_options"), this ** logic is partially replicated in ctime.c. If it is updated here, it should ** also be updated there. */ #if !defined(SQLITE_THREADSAFE) # if defined(THREADSAFE) # define SQLITE_THREADSAFE THREADSAFE # else # define SQLITE_THREADSAFE 1 /* IMP: R-07272-22309 */ # endif |
︙ | ︙ | |||
585 586 587 588 589 590 591 | /* ** Provide a default value for SQLITE_TEMP_STORE in case it is not specified ** on the command-line */ #ifndef SQLITE_TEMP_STORE # define SQLITE_TEMP_STORE 1 | < | 590 591 592 593 594 595 596 597 598 599 600 601 602 603 | /* ** Provide a default value for SQLITE_TEMP_STORE in case it is not specified ** on the command-line */ #ifndef SQLITE_TEMP_STORE # define SQLITE_TEMP_STORE 1 #endif /* ** If no value has been provided for SQLITE_MAX_WORKER_THREADS, or if ** SQLITE_TEMP_STORE is set to 3 (never use temporary files), set it ** to zero. */ |
︙ | ︙ | |||
886 887 888 889 890 891 892 | || defined(__sun) \ || defined(__FreeBSD__) \ || defined(__DragonFly__) # define SQLITE_MAX_MMAP_SIZE 0x7fff0000 /* 2147418112 */ # else # define SQLITE_MAX_MMAP_SIZE 0 # endif | < < | 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 | || defined(__sun) \ || defined(__FreeBSD__) \ || defined(__DragonFly__) # define SQLITE_MAX_MMAP_SIZE 0x7fff0000 /* 2147418112 */ # else # define SQLITE_MAX_MMAP_SIZE 0 # endif #endif /* ** The default MMAP_SIZE is zero on all platforms. Or, even if a larger ** default MMAP_SIZE is specified at compile-time, make sure that it does ** not exceed the maximum mmap size. */ #ifndef SQLITE_DEFAULT_MMAP_SIZE # define SQLITE_DEFAULT_MMAP_SIZE 0 #endif #if SQLITE_DEFAULT_MMAP_SIZE>SQLITE_MAX_MMAP_SIZE # undef SQLITE_DEFAULT_MMAP_SIZE # define SQLITE_DEFAULT_MMAP_SIZE SQLITE_MAX_MMAP_SIZE #endif /* |
︙ | ︙ |
Changes to test/ctime.test.
︙ | ︙ | |||
75 76 77 78 79 80 81 82 83 84 85 86 | } { do_execsql_test ctime-1.3.$tn { SELECT sqlite_compileoption_used($opt) } $res } } do_test ctime-1.4.1 { execsql { SELECT sqlite_compileoption_used('SQLITE_OMIT_COMPILEOPTION_DIAGS'); } } {0} | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | | 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 | } { do_execsql_test ctime-1.3.$tn { SELECT sqlite_compileoption_used($opt) } $res } } # SQLITE_THREADSAFE should pretty much always be defined # one way or the other, and it must have a value of 0 or 1. do_test ctime-1.4.1 { catchsql { SELECT sqlite_compileoption_used('SQLITE_THREADSAFE'); } } {0 1} do_test ctime-1.4.2 { catchsql { SELECT sqlite_compileoption_used('THREADSAFE'); } } {0 1} do_test ctime-1.4.3 { catchsql { SELECT sqlite_compileoption_used("THREADSAFE"); } } {0 1} do_test ctime-1.5 { set ans1 [ catchsql { SELECT sqlite_compileoption_used('THREADSAFE=0'); } ] set ans2 [ catchsql { SELECT sqlite_compileoption_used('THREADSAFE=1'); } ] set ans3 [ catchsql { SELECT sqlite_compileoption_used('THREADSAFE=2'); } ] lsort [ list $ans1 $ans2 $ans3 ] } {{0 0} {0 0} {0 1}} do_test ctime-1.6 { execsql { SELECT sqlite_compileoption_used('THREADSAFE='); } } {0} do_test ctime-1.7.1 { execsql { SELECT sqlite_compileoption_used('SQLITE_OMIT_COMPILEOPTION_DIAGS'); } } {0} do_test ctime-1.7.2 { execsql { SELECT sqlite_compileoption_used('OMIT_COMPILEOPTION_DIAGS'); } } {0} ##################### # ctime-2.*: Test function support. |
︙ | ︙ |
Changes to tool/mkctimec.tcl.
︙ | ︙ | |||
237 238 239 240 241 242 243 | SQLITE_MAX_VARIABLE_NUMBER SQLITE_MAX_VDBE_OP SQLITE_MAX_WORKER_THREADS SQLITE_SORTER_PMASZ SQLITE_STAT4_SAMPLES SQLITE_STMTJRNL_SPILL SQLITE_TEMP_STORE | < | 237 238 239 240 241 242 243 244 245 246 247 248 249 250 | SQLITE_MAX_VARIABLE_NUMBER SQLITE_MAX_VDBE_OP SQLITE_MAX_WORKER_THREADS SQLITE_SORTER_PMASZ SQLITE_STAT4_SAMPLES SQLITE_STMTJRNL_SPILL SQLITE_TEMP_STORE } # Options that require custom code. # set options(ENABLE_STAT3) { #if defined(SQLITE_ENABLE_STAT4) "ENABLE_STAT4", |
︙ | ︙ | |||
264 265 266 267 268 269 270 271 272 273 274 275 276 277 | "COMPILER=gcc-" __VERSION__, #endif } set options(HAVE_ISNAN) { #if HAVE_ISNAN || SQLITE_HAVE_ISNAN "HAVE_ISNAN", #endif } proc trim_name {in} { set ret $in if {[string range $in 0 6]=="SQLITE_"} { set ret [string range $in 7 end] } | > > > > > > > > > | 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 | "COMPILER=gcc-" __VERSION__, #endif } set options(HAVE_ISNAN) { #if HAVE_ISNAN || SQLITE_HAVE_ISNAN "HAVE_ISNAN", #endif } set options(THREADSAFE) { #if defined(SQLITE_THREADSAFE) "THREADSAFE=" CTIMEOPT_VAL(SQLITE_THREADSAFE), #elif defined(THREADSAFE) "THREADSAFE=" CTIMEOPT_VAL(THREADSAFE), #else "THREADSAFE=1" #endif } proc trim_name {in} { set ret $in if {[string range $in 0 6]=="SQLITE_"} { set ret [string range $in 7 end] } |
︙ | ︙ |