Fixes and improvements to PRAGMA compile_options.
FossilOrigin-Name: 34579549a3bc1c2cfbf47a4770c1d7abc97869ba57bcd3ab1515765ca505ea05
This commit is contained in:
commit
5da5b71435
15
manifest
15
manifest
@ -1,5 +1,5 @@
|
||||
C When\sconstructing\sthe\ssynthensized\sSELECT\sstatement\sthat\sis\sused\sto\schoose\nthe\srows\sin\san\sUPDATE\sFROM,\smake\ssure\sthe\sfirst\stable\sis\sreally\sthe\stable\nbeing\supdated,\sand\snot\ssome\scommon-table\sexpression\sthat\shappens\sto\shave\sthe\nsame\sname.\s\s[forum:/forumpost/a274248080|forum\spost\sa274248080].\s\sMore\nchanges\sassociated\swith\sCTE\sname\sresolution\sare\spending.
|
||||
D 2021-05-19T21:55:56.327
|
||||
C Fixes\sand\simprovements\sto\sPRAGMA\scompile_options.
|
||||
D 2021-05-20T00:10:24.906
|
||||
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
||||
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
||||
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
|
||||
@ -490,7 +490,7 @@ F src/btreeInt.h 7bc15a24a02662409ebcd6aeaa1065522d14b7fda71573a2b0568b458f514ae
|
||||
F src/build.c 65b87a05331914cf90bde90ae3d4797c0a18642bd13bb4ea1553a6238fd771ec
|
||||
F src/callback.c d0b853dd413255d2e337b34545e54d888ea02f20da5ad0e63585b389624c4a6c
|
||||
F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e
|
||||
F src/ctime.c 2a322b9a3d75771fb4d99e0702851f4f68dda982507a0f798eefb0712969a410
|
||||
F src/ctime.c 3052b6b05ed9ef547a3dd66b8e01bfa9d582e78752ad6ed327da84652641e038
|
||||
F src/date.c e0632f335952b32401482d099321bbf12716b29d6e72836b53ae49683ebae4bf
|
||||
F src/dbpage.c 8a01e865bf8bc6d7b1844b4314443a6436c07c3efe1d488ed89e81719047833a
|
||||
F src/dbstat.c 3aa79fc3aed7ce906e4ea6c10e85d657299e304f6049861fe300053ac57de36c
|
||||
@ -1840,7 +1840,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 06b0d503ee0e6c2d4abe83563b43d4925a12e31ec9fb3249ce39661f53fbd1ce
|
||||
F tool/mkkeywordhash.c 08b6e4d7a482a7f37a9a0032e7ba968e26624a027b6b2e9ba589be6f5e3d8c2c
|
||||
F tool/mkmsvcmin.tcl 6ecab9fe22c2c8de4d82d4c46797bda3d2deac8e763885f5a38d0c44a895ab33
|
||||
F tool/mkopcodec.tcl d1b6362bd3aa80d5520d4d6f3765badf01f6c43c
|
||||
@ -1913,7 +1913,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
|
||||
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
||||
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
||||
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
||||
P 4e81ea3b15fb3fce5f31b77273639e748a735ab0970620e564e9a5c977b24a1a
|
||||
R 2b48977b646d45167b0995ab8c8e71a0
|
||||
P 0f0959c6f95046e8e7887716e0a7de95da18d1e926ab1f919527083a56541db5 b70587cca9e4f0116621e27362186e9329bcea8016c6565cd3ec5a9bf4a99d46
|
||||
R 2a77c710da1274e5e7a53dc09e421364
|
||||
T +closed b70587cca9e4f0116621e27362186e9329bcea8016c6565cd3ec5a9bf4a99d46
|
||||
U drh
|
||||
Z f25d248421de35ee2c36028d331f7af7
|
||||
Z 6300f10b23774a093facbde1d7138060
|
||||
|
@ -1 +1 @@
|
||||
0f0959c6f95046e8e7887716e0a7de95da18d1e926ab1f919527083a56541db5
|
||||
34579549a3bc1c2cfbf47a4770c1d7abc97869ba57bcd3ab1515765ca505ea05
|
63
src/ctime.c
63
src/ctime.c
@ -58,8 +58,10 @@ static const char * const sqlite3azCompileOpt[] = {
|
||||
#if SQLITE_64BIT_STATS
|
||||
"64BIT_STATS",
|
||||
#endif
|
||||
#if SQLITE_ALLOW_COVERING_INDEX_SCAN
|
||||
"ALLOW_COVERING_INDEX_SCAN",
|
||||
#ifdef SQLITE_ALLOW_COVERING_INDEX_SCAN
|
||||
# if SQLITE_ALLOW_COVERING_INDEX_SCAN != 1
|
||||
"ALLOW_COVERING_INDEX_SCAN=" CTIMEOPT_VAL(SQLITE_ALLOW_COVERING_INDEX_SCAN),
|
||||
# endif
|
||||
#endif
|
||||
#if SQLITE_ALLOW_URI_AUTHORITY
|
||||
"ALLOW_URI_AUTHORITY",
|
||||
@ -121,8 +123,10 @@ static const char * const sqlite3azCompileOpt[] = {
|
||||
#ifdef SQLITE_DEFAULT_LOOKASIDE
|
||||
"DEFAULT_LOOKASIDE=" CTIMEOPT_VAL2(SQLITE_DEFAULT_LOOKASIDE),
|
||||
#endif
|
||||
#if SQLITE_DEFAULT_MEMSTATUS
|
||||
"DEFAULT_MEMSTATUS",
|
||||
#ifdef SQLITE_DEFAULT_MEMSTATUS
|
||||
# if SQLITE_DEFAULT_MEMSTATUS != 1
|
||||
"DEFAULT_MEMSTATUS=" CTIMEOPT_VAL(SQLITE_DEFAULT_MEMSTATUS),
|
||||
# endif
|
||||
#endif
|
||||
#ifdef SQLITE_DEFAULT_MMAP_SIZE
|
||||
"DEFAULT_MMAP_SIZE=" CTIMEOPT_VAL(SQLITE_DEFAULT_MMAP_SIZE),
|
||||
@ -196,7 +200,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,17 +215,17 @@ 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_EXPENSIVE_ASSERT
|
||||
"ENABLE_EXPENSIVE_ASSERT",
|
||||
#endif
|
||||
#if SQLITE_ENABLE_FTS1
|
||||
"ENABLE_FTS1",
|
||||
#endif
|
||||
#if SQLITE_ENABLE_FTS2
|
||||
"ENABLE_FTS2",
|
||||
#if SQLITE_ENABLE_EXPLAIN_COMMENTS
|
||||
"ENABLE_EXPLAIN_COMMENTS",
|
||||
#endif
|
||||
#if SQLITE_ENABLE_FTS3
|
||||
"ENABLE_FTS3",
|
||||
@ -280,6 +284,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 +317,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
|
||||
@ -364,8 +371,10 @@ static const char * const sqlite3azCompileOpt[] = {
|
||||
#if HAVE_ISNAN || SQLITE_HAVE_ISNAN
|
||||
"HAVE_ISNAN",
|
||||
#endif
|
||||
#if SQLITE_HOMEGROWN_RECURSIVE_MUTEX
|
||||
"HOMEGROWN_RECURSIVE_MUTEX",
|
||||
#ifdef SQLITE_HOMEGROWN_RECURSIVE_MUTEX
|
||||
# if SQLITE_HOMEGROWN_RECURSIVE_MUTEX != 1
|
||||
"HOMEGROWN_RECURSIVE_MUTEX=" CTIMEOPT_VAL(SQLITE_HOMEGROWN_RECURSIVE_MUTEX),
|
||||
# endif
|
||||
#endif
|
||||
#if SQLITE_IGNORE_AFP_LOCK_ERRORS
|
||||
"IGNORE_AFP_LOCK_ERRORS",
|
||||
@ -463,9 +472,6 @@ static const char * const sqlite3azCompileOpt[] = {
|
||||
#if SQLITE_MUTEX_NOOP
|
||||
"MUTEX_NOOP",
|
||||
#endif
|
||||
#if SQLITE_MUTEX_NREF
|
||||
"MUTEX_NREF",
|
||||
#endif
|
||||
#if SQLITE_MUTEX_OMIT
|
||||
"MUTEX_OMIT",
|
||||
#endif
|
||||
@ -535,7 +541,7 @@ static const char * const sqlite3azCompileOpt[] = {
|
||||
#if SQLITE_OMIT_CTE
|
||||
"OMIT_CTE",
|
||||
#endif
|
||||
#if SQLITE_OMIT_DATETIME_FUNCS
|
||||
#if defined(SQLITE_OMIT_DATETIME_FUNCS) || defined(SQLITE_OMIT_FLOATING_POINT)
|
||||
"OMIT_DATETIME_FUNCS",
|
||||
#endif
|
||||
#if SQLITE_OMIT_DECLTYPE
|
||||
@ -544,6 +550,9 @@ static const char * const sqlite3azCompileOpt[] = {
|
||||
#if SQLITE_OMIT_DEPRECATED
|
||||
"OMIT_DEPRECATED",
|
||||
#endif
|
||||
#if SQLITE_OMIT_DESERIALIZE
|
||||
"OMIT_DESERIALIZE",
|
||||
#endif
|
||||
#if SQLITE_OMIT_DISKIO
|
||||
"OMIT_DISKIO",
|
||||
#endif
|
||||
@ -571,6 +580,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
|
||||
@ -634,8 +646,10 @@ static const char * const sqlite3azCompileOpt[] = {
|
||||
#if SQLITE_OMIT_TEST_CONTROL
|
||||
"OMIT_TEST_CONTROL",
|
||||
#endif
|
||||
#if SQLITE_OMIT_TRACE
|
||||
"OMIT_TRACE",
|
||||
#ifdef SQLITE_OMIT_TRACE
|
||||
# if SQLITE_OMIT_TRACE != 1
|
||||
"OMIT_TRACE=" CTIMEOPT_VAL(SQLITE_OMIT_TRACE),
|
||||
# endif
|
||||
#endif
|
||||
#if SQLITE_OMIT_TRIGGER
|
||||
"OMIT_TRIGGER",
|
||||
@ -670,8 +684,10 @@ static const char * const sqlite3azCompileOpt[] = {
|
||||
#if SQLITE_PERFORMANCE_TRACE
|
||||
"PERFORMANCE_TRACE",
|
||||
#endif
|
||||
#if SQLITE_POWERSAFE_OVERWRITE
|
||||
"POWERSAFE_OVERWRITE",
|
||||
#ifdef SQLITE_POWERSAFE_OVERWRITE
|
||||
# if SQLITE_POWERSAFE_OVERWRITE != 1
|
||||
"POWERSAFE_OVERWRITE=" CTIMEOPT_VAL(SQLITE_POWERSAFE_OVERWRITE),
|
||||
# endif
|
||||
#endif
|
||||
#if SQLITE_PREFER_PROXY_LOCKING
|
||||
"PREFER_PROXY_LOCKING",
|
||||
@ -706,7 +722,10 @@ static const char * const sqlite3azCompileOpt[] = {
|
||||
#if SQLITE_SUBSTR_COMPATIBILITY
|
||||
"SUBSTR_COMPATIBILITY",
|
||||
#endif
|
||||
#if SQLITE_SYSTEM_MALLOC
|
||||
#if (!defined(SQLITE_WIN32_MALLOC) \
|
||||
&& !defined(SQLITE_ZERO_MALLOC) \
|
||||
&& !defined(SQLITE_MEMDEBUG) \
|
||||
) || defined(SQLITE_SYSTEM_MALLOC)
|
||||
"SYSTEM_MALLOC",
|
||||
#endif
|
||||
#if SQLITE_TCL
|
||||
|
@ -4,16 +4,28 @@
|
||||
#
|
||||
# const char **azCompileOpt[]
|
||||
#
|
||||
# declaration used in src/ctime.c, run this script.
|
||||
# definition used in src/ctime.c, run this script from
|
||||
# the checkout root. It alters src/ctime.c in-place.
|
||||
#
|
||||
|
||||
# All Boolean compile time options.
|
||||
# All Boolean compile time options which default to something
|
||||
# other than 0 or empty. The default is paired with the PP
|
||||
# symbol so that a differing define can be detected.
|
||||
#
|
||||
set boolean_options {
|
||||
set boolean_defnnz_options {
|
||||
{SQLITE_HOMEGROWN_RECURSIVE_MUTEX 1}
|
||||
{SQLITE_POWERSAFE_OVERWRITE 1}
|
||||
{SQLITE_DEFAULT_MEMSTATUS 1}
|
||||
{SQLITE_OMIT_TRACE 1}
|
||||
{SQLITE_ALLOW_COVERING_INDEX_SCAN 1}
|
||||
}
|
||||
|
||||
# All Boolean compile time options which default to 0 or empty.
|
||||
#
|
||||
set boolean_defnil_options {
|
||||
SQLITE_32BIT_ROWID
|
||||
SQLITE_4_BYTE_ALIGNED_MALLOC
|
||||
SQLITE_64BIT_STATS
|
||||
SQLITE_ALLOW_COVERING_INDEX_SCAN
|
||||
SQLITE_ALLOW_URI_AUTHORITY
|
||||
SQLITE_BUG_COMPATIBLE_20160819
|
||||
SQLITE_CASE_SENSITIVE_LIKE
|
||||
@ -25,7 +37,6 @@ set boolean_options {
|
||||
SQLITE_DEFAULT_CKPTFULLFSYNC
|
||||
SQLITE_DEFAULT_FOREIGN_KEYS
|
||||
SQLITE_DEFAULT_LOCKING_MODE
|
||||
SQLITE_DEFAULT_MEMSTATUS
|
||||
SQLITE_DEFAULT_RECURSIVE_TRIGGERS
|
||||
SQLITE_DEFAULT_SYNCHRONOUS
|
||||
SQLITE_DEFAULT_WAL_SYNCHRONOUS
|
||||
@ -40,40 +51,49 @@ 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_EXPENSIVE_ASSERT
|
||||
SQLITE_ENABLE_FTS1
|
||||
SQLITE_ENABLE_FTS2
|
||||
SQLITE_ENABLE_EXPLAIN_COMMENTS
|
||||
SQLITE_ENABLE_FTS3
|
||||
SQLITE_ENABLE_FTS3_PARENTHESIS
|
||||
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,8 +105,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
|
||||
SQLITE_INLINE_MEMCPY
|
||||
@ -98,7 +116,6 @@ set boolean_options {
|
||||
SQLITE_MIXED_ENDIAN_64BIT_FLOAT
|
||||
SQLITE_MMAP_READWRITE
|
||||
SQLITE_MUTEX_NOOP
|
||||
SQLITE_MUTEX_NREF
|
||||
SQLITE_MUTEX_OMIT
|
||||
SQLITE_MUTEX_PTHREADS
|
||||
SQLITE_MUTEX_W32
|
||||
@ -116,16 +133,15 @@ 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
|
||||
SQLITE_OMIT_COMPOUND_SELECT
|
||||
SQLITE_OMIT_CONFLICT_CLAUSE
|
||||
SQLITE_OMIT_CTE
|
||||
SQLITE_OMIT_DATETIME_FUNCS
|
||||
SQLITE_OMIT_DECLTYPE
|
||||
SQLITE_OMIT_DEPRECATED
|
||||
SQLITE_OMIT_DESERIALIZE
|
||||
SQLITE_OMIT_DISKIO
|
||||
SQLITE_OMIT_EXPLAIN
|
||||
SQLITE_OMIT_FLAG_PRAGMAS
|
||||
@ -135,6 +151,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
|
||||
@ -156,7 +173,6 @@ set boolean_options {
|
||||
SQLITE_OMIT_TCL_VARIABLE
|
||||
SQLITE_OMIT_TEMPDB
|
||||
SQLITE_OMIT_TEST_CONTROL
|
||||
SQLITE_OMIT_TRACE
|
||||
SQLITE_OMIT_TRIGGER
|
||||
SQLITE_OMIT_TRUNCATE_OPTIMIZATION
|
||||
SQLITE_OMIT_UTF16
|
||||
@ -168,7 +184,6 @@ set boolean_options {
|
||||
SQLITE_OMIT_XFER_OPT
|
||||
SQLITE_PCACHE_SEPARATE_HEADER
|
||||
SQLITE_PERFORMANCE_TRACE
|
||||
SQLITE_POWERSAFE_OVERWRITE
|
||||
SQLITE_PREFER_PROXY_LOCKING
|
||||
SQLITE_PROXY_DEBUG
|
||||
SQLITE_REVERSE_UNORDERED_SELECTS
|
||||
@ -177,7 +192,6 @@ set boolean_options {
|
||||
SQLITE_SMALL_STACK
|
||||
SQLITE_SOUNDEX
|
||||
SQLITE_SUBSTR_COMPATIBILITY
|
||||
SQLITE_SYSTEM_MALLOC
|
||||
SQLITE_TCL
|
||||
SQLITE_TEST
|
||||
SQLITE_UNLINK_AFTER_CLOSE
|
||||
@ -191,7 +205,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 +222,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 +233,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 +267,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__) "."
|
||||
@ -268,13 +283,26 @@ set options(HAVE_ISNAN) {
|
||||
"HAVE_ISNAN",
|
||||
#endif
|
||||
}
|
||||
set options(OMIT_DATETIME_FUNCS) {
|
||||
#if defined(SQLITE_OMIT_DATETIME_FUNCS) || defined(SQLITE_OMIT_FLOATING_POINT)
|
||||
"OMIT_DATETIME_FUNCS",
|
||||
#endif
|
||||
}
|
||||
set options(SYSTEM_MALLOC) "\
|
||||
#if (!defined(SQLITE_WIN32_MALLOC) \\
|
||||
&& !defined(SQLITE_ZERO_MALLOC) \\
|
||||
&& !defined(SQLITE_MEMDEBUG) \\
|
||||
) || defined(SQLITE_SYSTEM_MALLOC)
|
||||
\"SYSTEM_MALLOC\",
|
||||
#endif
|
||||
"
|
||||
set options(THREADSAFE) {
|
||||
#if defined(SQLITE_THREADSAFE)
|
||||
"THREADSAFE=" CTIMEOPT_VAL(SQLITE_THREADSAFE),
|
||||
#elif defined(THREADSAFE)
|
||||
"THREADSAFE=" CTIMEOPT_VAL(THREADSAFE),
|
||||
#else
|
||||
"THREADSAFE=1"
|
||||
"THREADSAFE=1",
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -286,7 +314,20 @@ proc trim_name {in} {
|
||||
return $ret
|
||||
}
|
||||
|
||||
foreach b $boolean_options {
|
||||
foreach name_defval $boolean_defnnz_options {
|
||||
set b [lindex $name_defval 0]
|
||||
set defval [lindex $name_defval 1]
|
||||
set name [trim_name $b]
|
||||
set options($name) [subst {
|
||||
#ifdef $b
|
||||
# if $b != $defval
|
||||
"$name=" CTIMEOPT_VAL($b),
|
||||
# endif
|
||||
#endif
|
||||
}]
|
||||
}
|
||||
|
||||
foreach b $boolean_defnil_options {
|
||||
set name [trim_name $b]
|
||||
set options($name) [subst {
|
||||
#if $b
|
||||
@ -303,9 +344,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
|
||||
|
Loading…
x
Reference in New Issue
Block a user