]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Bring pragma compile_options up to date. And make mkctimec.tcl help do so.
authorlarrybr <larrybr@noemail.net>
Thu, 15 Apr 2021 00:26:34 +0000 (00:26 +0000)
committerlarrybr <larrybr@noemail.net>
Thu, 15 Apr 2021 00:26:34 +0000 (00:26 +0000)
FossilOrigin-Name: 63ea3e298c575a408e5c5e12368292c966db6dcffcb6e1c770734f28b8757635

manifest
manifest.uuid
src/ctime.c
tool/mkctimec.tcl

index f7000bbdfd8df24f0d8b13e072df721a6cde5ad8..2d1f0482ecb348a799ae4bed10557490ad9a0612 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Prevent\san\sassert()\sfrom\sfailing\sif\ssqlite3_blob_reopen()\sis\scalled\son\sa\sblob-handle\sthat\shas\salready\shit\san\sSQLITE_CORRUPT\serror.
-D 2021-04-14T15:25:10.656
+C Bring\spragma\scompile_options\sup\sto\sdate.\sAnd\smake\smkctimec.tcl\shelp\sdo\sso.
+D 2021-04-15T00:26:34.919
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -489,7 +489,7 @@ F src/btreeInt.h 7bc15a24a02662409ebcd6aeaa1065522d14b7fda71573a2b0568b458f514ae
 F src/build.c 9f15ff3e074d3989cc1396f575118eb4c28fb677d33f54393ec263799c94b5bd
 F src/callback.c d0b853dd413255d2e337b34545e54d888ea02f20da5ad0e63585b389624c4a6c
 F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e
-F src/ctime.c 2a322b9a3d75771fb4d99e0702851f4f68dda982507a0f798eefb0712969a410
+F src/ctime.c 39fb02038fa3091cf8bc443083f7778f95b8cd7d44b007a1a86095759e7c359a
 F src/date.c e0632f335952b32401482d099321bbf12716b29d6e72836b53ae49683ebae4bf
 F src/dbpage.c 8a01e865bf8bc6d7b1844b4314443a6436c07c3efe1d488ed89e81719047833a
 F src/dbstat.c 3aa79fc3aed7ce906e4ea6c10e85d657299e304f6049861fe300053ac57de36c
@@ -1839,7 +1839,7 @@ F tool/logest.c 11346aa019e2e77a00902aa7d0cabd27bd2e8cca
 F tool/max-limits.c cbb635fbb37ae4d05f240bfb5b5270bb63c54439
 F tool/mkautoconfamal.sh f62353eb6c06ab264da027fd4507d09914433dbdcab9cb011cdc18016f1ab3b8
 F tool/mkccode.tcl 86463e68ce9c15d3041610fedd285ce32a5cf7a58fc88b3202b8b76837650dbe x
-F tool/mkctimec.tcl dd183b73ae1c28249669741c250525f0407e579a70482371668fd5f130d9feb3
+F tool/mkctimec.tcl 064bd59aa21ebb97d150b9355876c4444dc6886528551fa8f164d241f7df26be
 F tool/mkkeywordhash.c 08b6e4d7a482a7f37a9a0032e7ba968e26624a027b6b2e9ba589be6f5e3d8c2c
 F tool/mkmsvcmin.tcl 6ecab9fe22c2c8de4d82d4c46797bda3d2deac8e763885f5a38d0c44a895ab33
 F tool/mkopcodec.tcl d1b6362bd3aa80d5520d4d6f3765badf01f6c43c
@@ -1912,7 +1912,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 3c266690c753d093c2cb74138a46ed69276d85cd119d687a6858c84211e84eaf
-R 1229821373c94710c6cfca65316fcc76
-U dan
-Z d1d1b9d93c24f2fe354e7ba5f2704dee
+P b5dc7aba036cfd6d09c68dd17608328063634ca99ff341f97bab2dc2a1f59b11
+R b95c72c4911ad1a00cf52d8c60561403
+U larrybr
+Z a3c0c1fe90ff7f207fa76ea789d0c43a
index 5b985ac25b4c012347c69e2db081d02a6b74380d..5911dc02fba1ea64970953801a6adac9d1900518 100644 (file)
@@ -1 +1 @@
-b5dc7aba036cfd6d09c68dd17608328063634ca99ff341f97bab2dc2a1f59b11
\ No newline at end of file
+63ea3e298c575a408e5c5e12368292c966db6dcffcb6e1c770734f28b8757635
\ No newline at end of file
index 7982f23aebc08e0de1098052f5eeaf3b4598a86c..3a4e3487fbaf44484b714c00aa32802df51bc125 100644 (file)
@@ -196,7 +196,7 @@ static const char * const sqlite3azCompileOpt[] = {
 #if SQLITE_ENABLE_BYTECODE_VTAB
   "ENABLE_BYTECODE_VTAB",
 #endif
-#if SQLITE_ENABLE_CEROD
+#ifdef SQLITE_ENABLE_CEROD
   "ENABLE_CEROD=" CTIMEOPT_VAL(SQLITE_ENABLE_CEROD),
 #endif
 #if SQLITE_ENABLE_COLUMN_METADATA
@@ -211,12 +211,21 @@ static const char * const sqlite3azCompileOpt[] = {
 #if SQLITE_ENABLE_CURSOR_HINTS
   "ENABLE_CURSOR_HINTS",
 #endif
+#if SQLITE_ENABLE_DBPAGE_VTAB
+  "ENABLE_DBPAGE_VTAB",
+#endif
 #if SQLITE_ENABLE_DBSTAT_VTAB
   "ENABLE_DBSTAT_VTAB",
 #endif
+#if SQLITE_ENABLE_DESERIALIZE
+  "ENABLE_DESERIALIZE",
+#endif
 #if SQLITE_ENABLE_EXPENSIVE_ASSERT
   "ENABLE_EXPENSIVE_ASSERT",
 #endif
+#if SQLITE_ENABLE_EXPLAIN_COMMENTS
+  "ENABLE_EXPLAIN_COMMENTS",
+#endif
 #if SQLITE_ENABLE_FTS1
   "ENABLE_FTS1",
 #endif
@@ -280,6 +289,9 @@ static const char * const sqlite3azCompileOpt[] = {
 #if SQLITE_ENABLE_NULL_TRIM
   "ENABLE_NULL_TRIM",
 #endif
+#if SQLITE_ENABLE_OFFSET_SQL_FUNC
+  "ENABLE_OFFSET_SQL_FUNC",
+#endif
 #if SQLITE_ENABLE_OVERSIZE_CELL_CHECK
   "ENABLE_OVERSIZE_CELL_CHECK",
 #endif
@@ -310,7 +322,7 @@ static const char * const sqlite3azCompileOpt[] = {
 #if SQLITE_ENABLE_SQLLOG
   "ENABLE_SQLLOG",
 #endif
-#if defined(SQLITE_ENABLE_STAT4)
+#if SQLITE_ENABLE_STAT4
   "ENABLE_STAT4",
 #endif
 #if SQLITE_ENABLE_STMTVTAB
@@ -571,6 +583,9 @@ static const char * const sqlite3azCompileOpt[] = {
 #if SQLITE_OMIT_INTEGRITY_CHECK
   "OMIT_INTEGRITY_CHECK",
 #endif
+#if SQLITE_OMIT_INTROSPECTION_PRAGMAS
+  "OMIT_INTROSPECTION_PRAGMAS",
+#endif
 #if SQLITE_OMIT_LIKE_OPTIMIZATION
   "OMIT_LIKE_OPTIMIZATION",
 #endif
index 499d5a563911e7e1eb9c6b345c26c286b1e0627a..e2c5cafa043b1c7019141cf728725769418bd069 100644 (file)
@@ -40,13 +40,17 @@ set boolean_options {
   SQLITE_ENABLE_8_3_NAMES
   SQLITE_ENABLE_API_ARMOR
   SQLITE_ENABLE_ATOMIC_WRITE
-  SQLITE_ENABLE_CEROD
+  SQLITE_ENABLE_BATCH_ATOMIC_WRITE
+  SQLITE_ENABLE_BYTECODE_VTAB
   SQLITE_ENABLE_COLUMN_METADATA
   SQLITE_ENABLE_COLUMN_USED_MASK
   SQLITE_ENABLE_COSTMULT
   SQLITE_ENABLE_CURSOR_HINTS
+  SQLITE_ENABLE_DBPAGE_VTAB
   SQLITE_ENABLE_DBSTAT_VTAB
+  SQLITE_ENABLE_DESERIALIZE
   SQLITE_ENABLE_EXPENSIVE_ASSERT
+  SQLITE_ENABLE_EXPLAIN_COMMENTS
   SQLITE_ENABLE_FTS1
   SQLITE_ENABLE_FTS2
   SQLITE_ENABLE_FTS3
@@ -54,26 +58,34 @@ set boolean_options {
   SQLITE_ENABLE_FTS3_TOKENIZER
   SQLITE_ENABLE_FTS4
   SQLITE_ENABLE_FTS5
+  SQLITE_ENABLE_GEOPOLY
   SQLITE_ENABLE_HIDDEN_COLUMNS
   SQLITE_ENABLE_ICU
   SQLITE_ENABLE_IOTRACE
   SQLITE_ENABLE_JSON1
   SQLITE_ENABLE_LOAD_EXTENSION
   SQLITE_ENABLE_LOCKING_STYLE
+  SQLITE_ENABLE_MATH_FUNCTIONS
   SQLITE_ENABLE_MEMORY_MANAGEMENT
   SQLITE_ENABLE_MEMSYS3
   SQLITE_ENABLE_MEMSYS5
   SQLITE_ENABLE_MULTIPLEX
+  SQLITE_ENABLE_NORMALIZE
   SQLITE_ENABLE_NULL_TRIM
+  SQLITE_ENABLE_OFFSET_SQL_FUNC
   SQLITE_ENABLE_OVERSIZE_CELL_CHECK
   SQLITE_ENABLE_PREUPDATE_HOOK
+  SQLITE_ENABLE_QPSG
   SQLITE_ENABLE_RBU
   SQLITE_ENABLE_RTREE
   SQLITE_ENABLE_SELECTTRACE
   SQLITE_ENABLE_SESSION
   SQLITE_ENABLE_SNAPSHOT
+  SQLITE_ENABLE_SORTER_REFERENCES
   SQLITE_ENABLE_SQLLOG
+  SQLITE_ENABLE_STAT4
   SQLITE_ENABLE_STMT_SCANSTATUS
+  SQLITE_ENABLE_STMTVTAB
   SQLITE_ENABLE_UNKNOWN_SQL_FUNCTION
   SQLITE_ENABLE_UNLOCK_NOTIFY
   SQLITE_ENABLE_UPDATE_DELETE_LIMIT
@@ -85,7 +97,6 @@ set boolean_options {
   SQLITE_EXTRA_IFNULLROW
   SQLITE_FTS5_ENABLE_TEST_MI
   SQLITE_FTS5_NO_WITHOUT_ROWID
-  SQLITE_HAS_CODEC
   SQLITE_HOMEGROWN_RECURSIVE_MUTEX
   SQLITE_IGNORE_AFP_LOCK_ERRORS
   SQLITE_IGNORE_FLOCK_LOCK_ERRORS
@@ -116,7 +127,6 @@ set boolean_options {
   SQLITE_OMIT_AUTOVACUUM
   SQLITE_OMIT_BETWEEN_OPTIMIZATION
   SQLITE_OMIT_BLOB_LITERAL
-  SQLITE_OMIT_BTREECOUNT
   SQLITE_OMIT_CAST
   SQLITE_OMIT_CHECK
   SQLITE_OMIT_COMPLETE
@@ -135,6 +145,7 @@ set boolean_options {
   SQLITE_OMIT_HEX_INTEGER
   SQLITE_OMIT_INCRBLOB
   SQLITE_OMIT_INTEGRITY_CHECK
+  SQLITE_OMIT_INTROSPECTION_PRAGMAS
   SQLITE_OMIT_LIKE_OPTIMIZATION
   SQLITE_OMIT_LOAD_EXTENSION
   SQLITE_OMIT_LOCALTIME
@@ -191,7 +202,15 @@ set boolean_options {
   SQLITE_ZERO_MALLOC
 }
 
-# All compile time options for which the assigned value is other than boolean.
+# All compile time options for which the assigned value is other than boolean
+# and is a comma-separated scalar pair.
+#
+set value2_options {
+  SQLITE_DEFAULT_LOOKASIDE
+}
+
+# All compile time options for which the assigned value is other than boolean
+# and is a single scalar.
 #
 set value_options {
   SQLITE_BITMASK_TYPE
@@ -200,7 +219,6 @@ set value_options {
   SQLITE_DEFAULT_FILE_PERMISSIONS
   SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT
   SQLITE_DEFAULT_LOCKING_MODE
-  SQLITE_DEFAULT_LOOKASIDE
   SQLITE_DEFAULT_MMAP_SIZE
   SQLITE_DEFAULT_PAGE_SIZE
   SQLITE_DEFAULT_PCACHE_INITSZ
@@ -212,6 +230,7 @@ set value_options {
   SQLITE_DEFAULT_WAL_SYNCHRONOUS
   SQLITE_DEFAULT_WORKER_THREADS
   SQLITE_ENABLE_8_3_NAMES
+  SQLITE_ENABLE_CEROD
   SQLITE_ENABLE_LOCKING_STYLE
   SQLITE_EXTRA_INIT
   SQLITE_EXTRA_SHUTDOWN
@@ -245,13 +264,6 @@ set value_options {
 
 # Options that require custom code.
 #
-set options(ENABLE_STAT3) {
-#if defined(SQLITE_ENABLE_STAT4)
-  "ENABLE_STAT4",
-#elif defined(SQLITE_ENABLE_STAT3)
-  "ENABLE_STAT3",
-#endif
-}
 set options(COMPILER) {
 #if defined(__clang__) && defined(__clang_major__)
   "COMPILER=clang-" CTIMEOPT_VAL(__clang_major__) "."
@@ -274,7 +286,7 @@ set options(THREADSAFE) {
 #elif defined(THREADSAFE)
   "THREADSAFE=" CTIMEOPT_VAL(THREADSAFE),
 #else
-  "THREADSAFE=1"
+  "THREADSAFE=1",
 #endif
 }
 
@@ -303,9 +315,70 @@ foreach v $value_options {
 #endif
 }]
 }
+  
+foreach v $value2_options {
+  set name [trim_name $v]
+  set options($name) [subst {
+#ifdef $v
+  "$name=" CTIMEOPT_VAL2($v),
+#endif
+}]
+}
 
-foreach o [lsort [array names options]] {
-  puts [string trim $options($o)]
+# Split a string on a regex, return all parts in order.
+# Any elements with an even index may be empty.
+# Elements with odd indices will match the regex.
+proc split_on_re {re str {nrepps 1}} {
+  set chunks {}
+  set cix 0
+  set resm [regexp -all -inline -indices $re $str]
+  if {[llength $resm]==0} {
+    return $str
+  }
+  set rix 0
+  while {$rix < [llength $resm]} {
+    set mre [lindex $resm $rix]
+    incr rix $nrepps
+    set mbx [lindex $mre 0]
+    set mex [lindex $mre 1]
+    lappend chunks [string range $str $cix [expr $mbx - 1]]
+    lappend chunks [string range $str $mbx $mex]
+    set cix [expr $mex + 1]
+  }
+  lappend chunks [string range $str $cix end]
+  return $chunks
 }
 
 
+set ctime_c "src/ctime.c"
+if {[catch {set cfd [open $ctime_c r]}]!=0} {
+  puts stderr "File '$ctime_c' unreadable. Run this script from checkout root."
+  exit 1;
+}
+
+set ctfc [read $cfd]
+close $cfd
+
+set re {/\*\s+\*+\s*((BEGIN)|(END)) CODE GENERATED BY (\S+)\s+\*/\s+}
+set renpp 5
+
+set ctfcChunks [split_on_re $re $ctfc $renpp]
+if {[llength $ctfcChunks] != 5} {
+  puts stderr "File '$ctime_c' has too few generated code markers."
+  exit 1;
+}
+
+if {[catch {set cfd [open $ctime_c w]}]!=0} {
+  puts stderr "File '$ctime_c' unwritable."
+  exit 1;
+}
+
+puts -nonewline $cfd [lindex $ctfcChunks 0]
+puts -nonewline $cfd [lindex $ctfcChunks 1]
+foreach o [lsort [array names options]] {
+  puts $cfd [string trim $options($o)]
+}
+puts -nonewline $cfd [lindex $ctfcChunks 3]
+puts -nonewline $cfd [lindex $ctfcChunks 4]
+
+close $cfd