-C Minor\srefactoring\schange\sto\sclarify\show\sATTACH\sworks.\s\sNo\sfunctional\schanges.
-D 2017-06-16T18:31:30.375
+C Rework\sthe\scode\sin\sctime.c\sa\sbit\sto\sreport\son\smore\scompile\stime\soptions.\sAnd\nto\sonly\soutput\sconfiguration\soptions\spassed\sin\sto\sSQLite,\snot\sthe\sdefault\nvalues\sof\s#define\ssymbols\sset\sautomatically.\sAlso\sgenerate\sthe\slarge\sarray\sin\nctime.c\susing\snew\sscript\stool/mkctime.tcl,\sinstead\sof\sentering\sit\smanually.
+D 2017-06-16T19:51:47.668
F Makefile.in 1cc758ce3374a32425e4d130c2fe7b026b20de5b8843243de75f087c0a2661fb
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
F Makefile.msc 8eeb80162074004e906b53d7340a12a14c471a83743aab975947e95ce061efcc
F src/build.c 88a8cdc11d1c081ed565aa3e795bdf9160f4556463b4c4555e9860b59dd80340
F src/callback.c 2e76147783386374bf01b227f752c81ec872d730
F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e
-F src/ctime.c 47d91a25ad8f199a71a5b1b7b169d6dd0d6e98c5719eca801568798743d1161c
+F src/ctime.c 6327cb262d3468bcd3af863db42b4daed033441ddd5e612ccf9079ac2e23247f
F src/date.c cc42a41c7422389860d40419a5e3bce5eaf6e7835c3ba2677751dc653550a5c7
F src/dbstat.c 19ee7a4e89979d4df8e44cfac7a8f905ec89b77d
F src/delete.c 3213547e97b676c6fa79948b7a9ede4801ea04a01a2043241deafedf132ecf5d
F src/insert.c 974499a3999d339a4c1ba8ef129a988d9f136b3789e423808b38cdc19d28adbe
F src/legacy.c e88ed13c2d531decde75d42c2e35623fb9ce3cb0
F src/loadext.c a72909474dadce771d3669bf84bf689424f6f87d471fee898589c3ef9b2acfd9
-F src/main.c 65eb6093de90ab4372f2ae0d0cd0acfe718ea26ef0145435e0d9eecb854c9d7e
+F src/main.c 18f2145d572069dae91161add89446aec680aab296492a92ae5afcc2fc7c6b5a
F src/malloc.c e20bb2b48abec52d3faf01cce12e8b4f95973755fafec98d45162dfdab111978
F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
F src/mem1.c c12a42539b1ba105e3707d0e628ad70e611040d8f5e38cf942cee30c867083de
F src/sqlite.h.in 67fa8bd29808e7988e0ce36c8d4c6043eb1727f94522fc612687aa5af51931e6
F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
F src/sqlite3ext.h 58fd0676d3111d02e62e5a35992a7d3da5d3f88753acc174f2d37b774fbbdd28
-F src/sqliteInt.h f90955604b4d8e5a1f672bd230978640be89e0bbbf833d352cf4945ce3a799df
+F src/sqliteInt.h bdbc175a05b29293505530412a994fb259c7dfb63b06aa2016f13ef641229fa5
F src/sqliteLimit.h 1513bfb7b20378aa0041e7022d04acb73525de35b80b252f1b83fedb4de6a76b
F src/status.c a9e66593dfb28a9e746cba7153f84d49c1ddc4b1
F src/table.c b46ad567748f24a326d9de40e5b9659f96ffff34
F test/createtab.test b5de160630b209c4b8925bdcbbaf48cc90b67fe8
F test/cse.test 277350a26264495e86b1785f34d2d0c8600e021c
F test/csv01.test e0ba3caaa57e4c667a0b45977689fb8082f14348
-F test/ctime.test ff6c38e822459d6ca743c34901caf57740b08b54
+F test/ctime.test d19124daeadb9194f2af349b0e06cff723d6e3e7ac14903b4472edaf88b1839d
F test/cursorhint.test 7bc346788390475e77a345da2b92270d04d35856
F test/cursorhint2.test 8457e93d97f665f23f97cdbc8477d16e3480331b
F test/date.test 9b73bbeb1b82d9c1f44dec5cf563bf7da58d2373
F tool/logest.c 11346aa019e2e77a00902aa7d0cabd27bd2e8cca
F tool/max-limits.c cbb635fbb37ae4d05f240bfb5b5270bb63c54439
F tool/mkautoconfamal.sh e855df211ecbcc7131dee817110ff386cfb112f7
+F tool/mkctimec.tcl 4751d3c3e3ca8551b4c707574661db03e231b2b5a300af3f613eae4d39e4445a
F tool/mkkeywordhash.c f7f3b342211ac6a14258b9726d5b97cf4f548f22
F tool/mkmsvcmin.tcl cbd93f1cfa3a0a9ae56fc958510aa3fc3ac65e29cb111716199e3d0e66eefaa4
F tool/mkopcodec.tcl d1b6362bd3aa80d5520d4d6f3765badf01f6c43c
F tool/mkpragmatab.tcl 32bb40741df11bddc8451de9ea4d130e7b4476d8064794b1cf402ac110840fba
F tool/mkspeedsql.tcl a1a334d288f7adfe6e996f2e712becf076745c97
F tool/mksqlite3c-noext.tcl fef88397668ae83166735c41af99d79f56afaabb
-F tool/mksqlite3c.tcl 06b2e6a0f21cc0a5d70fbbd136b3e0a96470645e
+F tool/mksqlite3c.tcl 226da6d794d7d43a31e159a6fa89db867bf1f5eafe4b37d031222287ef8dbadc
F tool/mksqlite3h.tcl 51bd5e7e840a920388a5966c9f2ccc618f434c57bd68c1bab4085b2553e1e237
F tool/mksqlite3internalh.tcl eb994013e833359137eb53a55acdad0b5ae1049b
F tool/mkvsix.tcl b9e0777a213c23156b6542842c238479e496ebf5
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 11693849342a308ad929e2d9ead67faabacb523af76128c6973ed6cc8b62c11e
-R a34795f4d0fcef5a05bf2f69a4f53c3a
-U drh
-Z 099d10b7bf311f5813d7dd796aa1a1dd
+P 3944a32e1dd90ff903bcbaaa7cb497cebcfcb2ba2a326726ec2268505e524ae3
+R 7b6facdeed4814ee6f89b7d52660f8c0
+T *branch * ctime-refactor
+T *sym-ctime-refactor *
+T -sym-trunk *
+U dan
+Z 9b2fed7077fb54fd01f0379fb1045ffa
#ifndef SQLITE_OMIT_COMPILEOPTION_DIAGS
-#include "sqliteInt.h"
+
+/* These macros are provided to "stringify" the value of the define
+** for those options in which the value is meaningful. */
+#define CTIMEOPT_VAL_(opt) #opt
+#define CTIMEOPT_VAL(opt) CTIMEOPT_VAL_(opt)
/*
** An array of names of all compile-time options. This array should
*/
static const char * const azCompileOpt[] = {
-/* These macros are provided to "stringify" the value of the define
-** for those options in which the value is meaningful. */
-#define CTIMEOPT_VAL_(opt) #opt
-#define CTIMEOPT_VAL(opt) CTIMEOPT_VAL_(opt)
-
+/*
+** BEGIN CODE GENERATED BY tool/mkctime.tcl
+*/
#if SQLITE_32BIT_ROWID
"32BIT_ROWID",
#endif
#if SQLITE_4_BYTE_ALIGNED_MALLOC
"4_BYTE_ALIGNED_MALLOC",
#endif
+#if SQLITE_64BIT_STATS
+ "64BIT_STATS",
+#endif
+#if SQLITE_ALLOW_COVERING_INDEX_SCAN
+ "ALLOW_COVERING_INDEX_SCAN",
+#endif
+#if SQLITE_ALLOW_URI_AUTHORITY
+ "ALLOW_URI_AUTHORITY",
+#endif
+#ifdef SQLITE_BITMASK_TYPE
+ "BITMASK_TYPE=" CTIMEOPT_VAL(SQLITE_BITMASK_TYPE),
+#endif
+#if SQLITE_BUG_COMPATIBLE_20160819
+ "BUG_COMPATIBLE_20160819",
+#endif
#if SQLITE_CASE_SENSITIVE_LIKE
"CASE_SENSITIVE_LIKE",
#endif
#if SQLITE_COVERAGE_TEST
"COVERAGE_TEST",
#endif
-#ifdef SQLITE_DEBUG
+#if SQLITE_DEBUG
"DEBUG",
#endif
-#if SQLITE_DEFAULT_LOCKING_MODE
+#if SQLITE_DEFAULT_AUTOMATIC_INDEX
+ "DEFAULT_AUTOMATIC_INDEX",
+#endif
+#if SQLITE_DEFAULT_AUTOVACUUM
+ "DEFAULT_AUTOVACUUM",
+#endif
+#ifdef SQLITE_DEFAULT_CACHE_SIZE
+ "DEFAULT_CACHE_SIZE=" CTIMEOPT_VAL(SQLITE_DEFAULT_CACHE_SIZE),
+#endif
+#if SQLITE_DEFAULT_CKPTFULLFSYNC
+ "DEFAULT_CKPTFULLFSYNC",
+#endif
+#ifdef SQLITE_DEFAULT_FILE_FORMAT
+ "DEFAULT_FILE_FORMAT=" CTIMEOPT_VAL(SQLITE_DEFAULT_FILE_FORMAT),
+#endif
+#ifdef SQLITE_DEFAULT_FILE_PERMISSIONS
+ "DEFAULT_FILE_PERMISSIONS=" CTIMEOPT_VAL(SQLITE_DEFAULT_FILE_PERMISSIONS),
+#endif
+#if SQLITE_DEFAULT_FOREIGN_KEYS
+ "DEFAULT_FOREIGN_KEYS",
+#endif
+#ifdef SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT
+ "DEFAULT_JOURNAL_SIZE_LIMIT=" CTIMEOPT_VAL(SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT),
+#endif
+#ifdef SQLITE_DEFAULT_LOCKING_MODE
"DEFAULT_LOCKING_MODE=" CTIMEOPT_VAL(SQLITE_DEFAULT_LOCKING_MODE),
#endif
-#if defined(SQLITE_DEFAULT_MMAP_SIZE) && !defined(SQLITE_DEFAULT_MMAP_SIZE_xc)
+#ifdef SQLITE_DEFAULT_LOOKASIDE
+ "DEFAULT_LOOKASIDE=" CTIMEOPT_VAL(SQLITE_DEFAULT_LOOKASIDE),
+#endif
+#if SQLITE_DEFAULT_MEMSTATUS
+ "DEFAULT_MEMSTATUS",
+#endif
+#ifdef SQLITE_DEFAULT_MMAP_SIZE
"DEFAULT_MMAP_SIZE=" CTIMEOPT_VAL(SQLITE_DEFAULT_MMAP_SIZE),
#endif
-#if SQLITE_DEFAULT_SYNCHRONOUS
+#ifdef SQLITE_DEFAULT_PAGE_SIZE
+ "DEFAULT_PAGE_SIZE=" CTIMEOPT_VAL(SQLITE_DEFAULT_PAGE_SIZE),
+#endif
+#ifdef SQLITE_DEFAULT_PCACHE_INITSZ
+ "DEFAULT_PCACHE_INITSZ=" CTIMEOPT_VAL(SQLITE_DEFAULT_PCACHE_INITSZ),
+#endif
+#ifdef SQLITE_DEFAULT_PROXYDIR_PERMISSIONS
+ "DEFAULT_PROXYDIR_PERMISSIONS=" CTIMEOPT_VAL(SQLITE_DEFAULT_PROXYDIR_PERMISSIONS),
+#endif
+#if SQLITE_DEFAULT_RECURSIVE_TRIGGERS
+ "DEFAULT_RECURSIVE_TRIGGERS",
+#endif
+#ifdef SQLITE_DEFAULT_ROWEST
+ "DEFAULT_ROWEST=" CTIMEOPT_VAL(SQLITE_DEFAULT_ROWEST),
+#endif
+#ifdef SQLITE_DEFAULT_SECTOR_SIZE
+ "DEFAULT_SECTOR_SIZE=" CTIMEOPT_VAL(SQLITE_DEFAULT_SECTOR_SIZE),
+#endif
+#ifdef SQLITE_DEFAULT_SYNCHRONOUS
"DEFAULT_SYNCHRONOUS=" CTIMEOPT_VAL(SQLITE_DEFAULT_SYNCHRONOUS),
#endif
-#if SQLITE_DEFAULT_WAL_SYNCHRONOUS
+#ifdef SQLITE_DEFAULT_WAL_AUTOCHECKPOINT
+ "DEFAULT_WAL_AUTOCHECKPOINT=" CTIMEOPT_VAL(SQLITE_DEFAULT_WAL_AUTOCHECKPOINT),
+#endif
+#ifdef SQLITE_DEFAULT_WAL_SYNCHRONOUS
"DEFAULT_WAL_SYNCHRONOUS=" CTIMEOPT_VAL(SQLITE_DEFAULT_WAL_SYNCHRONOUS),
#endif
+#ifdef SQLITE_DEFAULT_WORKER_THREADS
+ "DEFAULT_WORKER_THREADS=" CTIMEOPT_VAL(SQLITE_DEFAULT_WORKER_THREADS),
+#endif
#if SQLITE_DIRECT_OVERFLOW_READ
"DIRECT_OVERFLOW_READ",
#endif
#if SQLITE_DISABLE_DIRSYNC
"DISABLE_DIRSYNC",
#endif
+#if SQLITE_DISABLE_FTS3_UNICODE
+ "DISABLE_FTS3_UNICODE",
+#endif
+#if SQLITE_DISABLE_FTS4_DEFERRED
+ "DISABLE_FTS4_DEFERRED",
+#endif
+#if SQLITE_DISABLE_INTRINSIC
+ "DISABLE_INTRINSIC",
+#endif
#if SQLITE_DISABLE_LFS
"DISABLE_LFS",
#endif
-#if SQLITE_ENABLE_8_3_NAMES
+#if SQLITE_DISABLE_PAGECACHE_OVERFLOW_STATS
+ "DISABLE_PAGECACHE_OVERFLOW_STATS",
+#endif
+#if SQLITE_DISABLE_SKIPAHEAD_DISTINCT
+ "DISABLE_SKIPAHEAD_DISTINCT",
+#endif
+#ifdef SQLITE_ENABLE_8_3_NAMES
"ENABLE_8_3_NAMES=" CTIMEOPT_VAL(SQLITE_ENABLE_8_3_NAMES),
#endif
#if SQLITE_ENABLE_API_ARMOR
#if SQLITE_ENABLE_COLUMN_METADATA
"ENABLE_COLUMN_METADATA",
#endif
+#if SQLITE_ENABLE_COLUMN_USED_MASK
+ "ENABLE_COLUMN_USED_MASK",
+#endif
+#if SQLITE_ENABLE_COSTMULT
+ "ENABLE_COSTMULT",
+#endif
+#if SQLITE_ENABLE_CURSOR_HINTS
+ "ENABLE_CURSOR_HINTS",
+#endif
#if SQLITE_ENABLE_DBSTAT_VTAB
"ENABLE_DBSTAT_VTAB",
#endif
#if SQLITE_ENABLE_FTS3_PARENTHESIS
"ENABLE_FTS3_PARENTHESIS",
#endif
+#if SQLITE_ENABLE_FTS3_TOKENIZER
+ "ENABLE_FTS3_TOKENIZER",
+#endif
#if SQLITE_ENABLE_FTS4
"ENABLE_FTS4",
#endif
#if SQLITE_ENABLE_FTS5
"ENABLE_FTS5",
#endif
+#if SQLITE_ENABLE_HIDDEN_COLUMNS
+ "ENABLE_HIDDEN_COLUMNS",
+#endif
#if SQLITE_ENABLE_ICU
"ENABLE_ICU",
#endif
#if SQLITE_ENABLE_LOAD_EXTENSION
"ENABLE_LOAD_EXTENSION",
#endif
-#if SQLITE_ENABLE_LOCKING_STYLE
+#ifdef SQLITE_ENABLE_LOCKING_STYLE
"ENABLE_LOCKING_STYLE=" CTIMEOPT_VAL(SQLITE_ENABLE_LOCKING_STYLE),
#endif
#if SQLITE_ENABLE_MEMORY_MANAGEMENT
#if SQLITE_ENABLE_MEMSYS5
"ENABLE_MEMSYS5",
#endif
+#if SQLITE_ENABLE_MULTIPLEX
+ "ENABLE_MULTIPLEX",
+#endif
+#if SQLITE_ENABLE_NULL_TRIM
+ "ENABLE_NULL_TRIM",
+#endif
#if SQLITE_ENABLE_OVERSIZE_CELL_CHECK
"ENABLE_OVERSIZE_CELL_CHECK",
#endif
+#if SQLITE_ENABLE_PREUPDATE_HOOK
+ "ENABLE_PREUPDATE_HOOK",
+#endif
+#if SQLITE_ENABLE_RBU
+ "ENABLE_RBU",
+#endif
#if SQLITE_ENABLE_RTREE
"ENABLE_RTREE",
#endif
+#if SQLITE_ENABLE_SELECTTRACE
+ "ENABLE_SELECTTRACE",
+#endif
+#if SQLITE_ENABLE_SESSION
+ "ENABLE_SESSION",
+#endif
+#if SQLITE_ENABLE_SNAPSHOT
+ "ENABLE_SNAPSHOT",
+#endif
+#if SQLITE_ENABLE_SQLLOG
+ "ENABLE_SQLLOG",
+#endif
#if defined(SQLITE_ENABLE_STAT4)
"ENABLE_STAT4",
#elif defined(SQLITE_ENABLE_STAT3)
"ENABLE_STAT3",
#endif
+#if SQLITE_ENABLE_STMT_SCANSTATUS
+ "ENABLE_STMT_SCANSTATUS",
+#endif
+#if SQLITE_ENABLE_UNKNOWN_SQL_FUNCTION
+ "ENABLE_UNKNOWN_SQL_FUNCTION",
+#endif
#if SQLITE_ENABLE_UNLOCK_NOTIFY
"ENABLE_UNLOCK_NOTIFY",
#endif
#if SQLITE_ENABLE_UPDATE_DELETE_LIMIT
"ENABLE_UPDATE_DELETE_LIMIT",
#endif
-#if defined(SQLITE_ENABLE_URI_00_ERROR)
+#if SQLITE_ENABLE_URI_00_ERROR
"ENABLE_URI_00_ERROR",
#endif
+#if SQLITE_ENABLE_VFSTRACE
+ "ENABLE_VFSTRACE",
+#endif
+#if SQLITE_ENABLE_WHERETRACE
+ "ENABLE_WHERETRACE",
+#endif
+#if SQLITE_ENABLE_ZIPVFS
+ "ENABLE_ZIPVFS",
+#endif
+#if SQLITE_EXPLAIN_ESTIMATED_ROWS
+ "EXPLAIN_ESTIMATED_ROWS",
+#endif
+#if SQLITE_EXTRA_IFNULLROW
+ "EXTRA_IFNULLROW",
+#endif
+#ifdef SQLITE_EXTRA_INIT
+ "EXTRA_INIT=" CTIMEOPT_VAL(SQLITE_EXTRA_INIT),
+#endif
+#ifdef SQLITE_EXTRA_SHUTDOWN
+ "EXTRA_SHUTDOWN=" CTIMEOPT_VAL(SQLITE_EXTRA_SHUTDOWN),
+#endif
+#ifdef SQLITE_FTS3_MAX_EXPR_DEPTH
+ "FTS3_MAX_EXPR_DEPTH=" CTIMEOPT_VAL(SQLITE_FTS3_MAX_EXPR_DEPTH),
+#endif
+#if SQLITE_FTS5_ENABLE_TEST_MI
+ "FTS5_ENABLE_TEST_MI",
+#endif
+#if SQLITE_FTS5_NO_WITHOUT_ROWID
+ "FTS5_NO_WITHOUT_ROWID",
+#endif
#if SQLITE_HAS_CODEC
"HAS_CODEC",
#endif
#if SQLITE_IGNORE_FLOCK_LOCK_ERRORS
"IGNORE_FLOCK_LOCK_ERRORS",
#endif
-#ifdef SQLITE_INT64_TYPE
+#if SQLITE_INLINE_MEMCPY
+ "INLINE_MEMCPY",
+#endif
+#if SQLITE_INT64_TYPE
"INT64_TYPE",
#endif
-#ifdef SQLITE_LIKE_DOESNT_MATCH_BLOBS
+#ifdef SQLITE_INTEGRITY_CHECK_ERROR_MAX
+ "INTEGRITY_CHECK_ERROR_MAX=" CTIMEOPT_VAL(SQLITE_INTEGRITY_CHECK_ERROR_MAX),
+#endif
+#if SQLITE_LIKE_DOESNT_MATCH_BLOBS
"LIKE_DOESNT_MATCH_BLOBS",
#endif
#if SQLITE_LOCK_TRACE
"LOCK_TRACE",
#endif
-#if defined(SQLITE_MAX_MMAP_SIZE) && !defined(SQLITE_MAX_MMAP_SIZE_xc)
+#if SQLITE_LOG_CACHE_SPILL
+ "LOG_CACHE_SPILL",
+#endif
+#ifdef SQLITE_MALLOC_SOFT_LIMIT
+ "MALLOC_SOFT_LIMIT=" CTIMEOPT_VAL(SQLITE_MALLOC_SOFT_LIMIT),
+#endif
+#ifdef SQLITE_MAX_ATTACHED
+ "MAX_ATTACHED=" CTIMEOPT_VAL(SQLITE_MAX_ATTACHED),
+#endif
+#ifdef SQLITE_MAX_COLUMN
+ "MAX_COLUMN=" CTIMEOPT_VAL(SQLITE_MAX_COLUMN),
+#endif
+#ifdef SQLITE_MAX_COMPOUND_SELECT
+ "MAX_COMPOUND_SELECT=" CTIMEOPT_VAL(SQLITE_MAX_COMPOUND_SELECT),
+#endif
+#ifdef SQLITE_MAX_DEFAULT_PAGE_SIZE
+ "MAX_DEFAULT_PAGE_SIZE=" CTIMEOPT_VAL(SQLITE_MAX_DEFAULT_PAGE_SIZE),
+#endif
+#ifdef SQLITE_MAX_EXPR_DEPTH
+ "MAX_EXPR_DEPTH=" CTIMEOPT_VAL(SQLITE_MAX_EXPR_DEPTH),
+#endif
+#ifdef SQLITE_MAX_FUNCTION_ARG
+ "MAX_FUNCTION_ARG=" CTIMEOPT_VAL(SQLITE_MAX_FUNCTION_ARG),
+#endif
+#ifdef SQLITE_MAX_LENGTH
+ "MAX_LENGTH=" CTIMEOPT_VAL(SQLITE_MAX_LENGTH),
+#endif
+#ifdef SQLITE_MAX_LIKE_PATTERN_LENGTH
+ "MAX_LIKE_PATTERN_LENGTH=" CTIMEOPT_VAL(SQLITE_MAX_LIKE_PATTERN_LENGTH),
+#endif
+#ifdef SQLITE_MAX_MEMORY
+ "MAX_MEMORY=" CTIMEOPT_VAL(SQLITE_MAX_MEMORY),
+#endif
+#ifdef SQLITE_MAX_MMAP_SIZE
"MAX_MMAP_SIZE=" CTIMEOPT_VAL(SQLITE_MAX_MMAP_SIZE),
#endif
+#ifdef SQLITE_MAX_MMAP_SIZE_
+ "MAX_MMAP_SIZE_=" CTIMEOPT_VAL(SQLITE_MAX_MMAP_SIZE_),
+#endif
+#ifdef SQLITE_MAX_PAGE_COUNT
+ "MAX_PAGE_COUNT=" CTIMEOPT_VAL(SQLITE_MAX_PAGE_COUNT),
+#endif
+#ifdef SQLITE_MAX_PAGE_SIZE
+ "MAX_PAGE_SIZE=" CTIMEOPT_VAL(SQLITE_MAX_PAGE_SIZE),
+#endif
#ifdef SQLITE_MAX_SCHEMA_RETRY
"MAX_SCHEMA_RETRY=" CTIMEOPT_VAL(SQLITE_MAX_SCHEMA_RETRY),
#endif
+#ifdef SQLITE_MAX_SQL_LENGTH
+ "MAX_SQL_LENGTH=" CTIMEOPT_VAL(SQLITE_MAX_SQL_LENGTH),
+#endif
+#ifdef SQLITE_MAX_TRIGGER_DEPTH
+ "MAX_TRIGGER_DEPTH=" CTIMEOPT_VAL(SQLITE_MAX_TRIGGER_DEPTH),
+#endif
+#ifdef SQLITE_MAX_VARIABLE_NUMBER
+ "MAX_VARIABLE_NUMBER=" CTIMEOPT_VAL(SQLITE_MAX_VARIABLE_NUMBER),
+#endif
+#ifdef SQLITE_MAX_VDBE_OP
+ "MAX_VDBE_OP=" CTIMEOPT_VAL(SQLITE_MAX_VDBE_OP),
+#endif
+#ifdef SQLITE_MAX_WORKER_THREADS
+ "MAX_WORKER_THREADS=" CTIMEOPT_VAL(SQLITE_MAX_WORKER_THREADS),
+#endif
#if SQLITE_MEMDEBUG
"MEMDEBUG",
#endif
#if SQLITE_MIXED_ENDIAN_64BIT_FLOAT
"MIXED_ENDIAN_64BIT_FLOAT",
#endif
+#if SQLITE_MMAP_READWRITE
+ "MMAP_READWRITE",
+#endif
+#if SQLITE_MUTEX_NOOP
+ "MUTEX_NOOP",
+#endif
+#if SQLITE_MUTEX_NREF
+ "MUTEX_NREF",
+#endif
+#if SQLITE_MUTEX_OMIT
+ "MUTEX_OMIT",
+#endif
+#if SQLITE_MUTEX_PTHREADS
+ "MUTEX_PTHREADS",
+#endif
+#if SQLITE_MUTEX_W32
+ "MUTEX_W32",
+#endif
+#if SQLITE_NEED_ERR_NAME
+ "NEED_ERR_NAME",
+#endif
+#if SQLITE_NOINLINE
+ "NOINLINE",
+#endif
#if SQLITE_NO_SYNC
"NO_SYNC",
#endif
#if SQLITE_OMIT_COMPOUND_SELECT
"OMIT_COMPOUND_SELECT",
#endif
+#if SQLITE_OMIT_CONFLICT_CLAUSE
+ "OMIT_CONFLICT_CLAUSE",
+#endif
#if SQLITE_OMIT_CTE
"OMIT_CTE",
#endif
#if SQLITE_OMIT_GET_TABLE
"OMIT_GET_TABLE",
#endif
+#if SQLITE_OMIT_HEX_INTEGER
+ "OMIT_HEX_INTEGER",
+#endif
#if SQLITE_OMIT_INCRBLOB
"OMIT_INCRBLOB",
#endif
#if SQLITE_OMIT_PAGER_PRAGMAS
"OMIT_PAGER_PRAGMAS",
#endif
+#if SQLITE_OMIT_PARSER_TRACE
+ "OMIT_PARSER_TRACE",
+#endif
+#if SQLITE_OMIT_POPEN
+ "OMIT_POPEN",
+#endif
#if SQLITE_OMIT_PRAGMA
"OMIT_PRAGMA",
#endif
#if SQLITE_OMIT_SHARED_CACHE
"OMIT_SHARED_CACHE",
#endif
+#if SQLITE_OMIT_SHUTDOWN_DIRECTORIES
+ "OMIT_SHUTDOWN_DIRECTORIES",
+#endif
#if SQLITE_OMIT_SUBQUERY
"OMIT_SUBQUERY",
#endif
#if SQLITE_OMIT_TEMPDB
"OMIT_TEMPDB",
#endif
+#if SQLITE_OMIT_TEST_CONTROL
+ "OMIT_TEST_CONTROL",
+#endif
#if SQLITE_OMIT_TRACE
"OMIT_TRACE",
#endif
#if SQLITE_OMIT_XFER_OPT
"OMIT_XFER_OPT",
#endif
+#if SQLITE_PCACHE_SEPARATE_HEADER
+ "PCACHE_SEPARATE_HEADER",
+#endif
#if SQLITE_PERFORMANCE_TRACE
"PERFORMANCE_TRACE",
#endif
+#if SQLITE_POWERSAFE_OVERWRITE
+ "POWERSAFE_OVERWRITE",
+#endif
+#if SQLITE_PREFER_PROXY_LOCKING
+ "PREFER_PROXY_LOCKING",
+#endif
#if SQLITE_PROXY_DEBUG
"PROXY_DEBUG",
#endif
+#if SQLITE_REVERSE_UNORDERED_SELECTS
+ "REVERSE_UNORDERED_SELECTS",
+#endif
#if SQLITE_RTREE_INT_ONLY
"RTREE_INT_ONLY",
#endif
#if SQLITE_SMALL_STACK
"SMALL_STACK",
#endif
+#ifdef SQLITE_SORTER_PMASZ
+ "SORTER_PMASZ=" CTIMEOPT_VAL(SQLITE_SORTER_PMASZ),
+#endif
#if SQLITE_SOUNDEX
"SOUNDEX",
#endif
+#ifdef SQLITE_STAT4_SAMPLES
+ "STAT4_SAMPLES=" CTIMEOPT_VAL(SQLITE_STAT4_SAMPLES),
+#endif
+#ifdef SQLITE_STMTJRNL_SPILL
+ "STMTJRNL_SPILL=" CTIMEOPT_VAL(SQLITE_STMTJRNL_SPILL),
+#endif
+#if SQLITE_SUBSTR_COMPATIBILITY
+ "SUBSTR_COMPATIBILITY",
+#endif
#if SQLITE_SYSTEM_MALLOC
"SYSTEM_MALLOC",
#endif
#if SQLITE_TCL
"TCL",
#endif
-#if defined(SQLITE_TEMP_STORE) && !defined(SQLITE_TEMP_STORE_xc)
+#ifdef SQLITE_TEMP_STORE
"TEMP_STORE=" CTIMEOPT_VAL(SQLITE_TEMP_STORE),
#endif
#if SQLITE_TEST
"TEST",
#endif
-#if defined(SQLITE_THREADSAFE)
+#ifdef SQLITE_THREADSAFE
"THREADSAFE=" CTIMEOPT_VAL(SQLITE_THREADSAFE),
#endif
+#if SQLITE_UNLINK_AFTER_CLOSE
+ "UNLINK_AFTER_CLOSE",
+#endif
#if SQLITE_UNTESTABLE
- "UNTESTABLE"
+ "UNTESTABLE",
+#endif
+#if SQLITE_USER_AUTHENTICATION
+ "USER_AUTHENTICATION",
#endif
#if SQLITE_USE_ALLOCA
"USE_ALLOCA",
#endif
-#if SQLITE_USER_AUTHENTICATION
- "USER_AUTHENTICATION",
+#if SQLITE_USE_FCNTL_TRACE
+ "USE_FCNTL_TRACE",
+#endif
+#if SQLITE_USE_URI
+ "USE_URI",
+#endif
+#if SQLITE_VDBE_COVERAGE
+ "VDBE_COVERAGE",
#endif
#if SQLITE_WIN32_MALLOC
"WIN32_MALLOC",
#endif
#if SQLITE_ZERO_MALLOC
- "ZERO_MALLOC"
+ "ZERO_MALLOC",
#endif
-};
-
-/*
-** Given the name of a compile-time option, return true if that option
-** was used and false if not.
-**
-** The name can optionally begin with "SQLITE_" but the "SQLITE_" prefix
-** is not required for a match.
+/*
+** END CODE GENERATED BY tool/mkctime.tcl
*/
-int sqlite3_compileoption_used(const char *zOptName){
- int i, n;
-
-#if SQLITE_ENABLE_API_ARMOR
- if( zOptName==0 ){
- (void)SQLITE_MISUSE_BKPT;
- return 0;
- }
-#endif
- if( sqlite3StrNICmp(zOptName, "SQLITE_", 7)==0 ) zOptName += 7;
- n = sqlite3Strlen30(zOptName);
-
- /* Since ArraySize(azCompileOpt) is normally in single digits, a
- ** linear search is adequate. No need for a binary search. */
- for(i=0; i<ArraySize(azCompileOpt); i++){
- if( sqlite3StrNICmp(zOptName, azCompileOpt[i], n)==0
- && sqlite3IsIdChar((unsigned char)azCompileOpt[i][n])==0
- ){
- return 1;
- }
- }
- return 0;
-}
+};
-/*
-** Return the N-th compile-time option string. If N is out of range,
-** return a NULL pointer.
-*/
-const char *sqlite3_compileoption_get(int N){
- if( N>=0 && N<ArraySize(azCompileOpt) ){
- return azCompileOpt[N];
- }
- return 0;
+const char **sqlite3CompileOptions(int *pnOpt){
+ *pnOpt = sizeof(azCompileOpt) / sizeof(azCompileOpt[0]);
+ return (const char**)azCompileOpt;
}
#endif /* SQLITE_OMIT_COMPILEOPTION_DIAGS */
+
--- /dev/null
+#!/usr/bin/tclsh
+#
+# To build the
+#
+# const char **azCompileOpt[]
+#
+# declaration used in src/ctime.c, run this script.
+#
+
+# All Boolean compile time options.
+#
+set boolean_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
+ SQLITE_CHECK_PAGES
+ SQLITE_COVERAGE_TEST
+ SQLITE_DEBUG
+ SQLITE_DEFAULT_AUTOMATIC_INDEX
+ SQLITE_DEFAULT_AUTOVACUUM
+ 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
+ SQLITE_DIRECT_OVERFLOW_READ
+ SQLITE_DISABLE_DIRSYNC
+ SQLITE_DISABLE_FTS3_UNICODE
+ SQLITE_DISABLE_FTS4_DEFERRED
+ SQLITE_DISABLE_INTRINSIC
+ SQLITE_DISABLE_LFS
+ SQLITE_DISABLE_PAGECACHE_OVERFLOW_STATS
+ SQLITE_DISABLE_SKIPAHEAD_DISTINCT
+ SQLITE_ENABLE_8_3_NAMES
+ SQLITE_ENABLE_API_ARMOR
+ SQLITE_ENABLE_ATOMIC_WRITE
+ SQLITE_ENABLE_CEROD
+ SQLITE_ENABLE_COLUMN_METADATA
+ SQLITE_ENABLE_COLUMN_USED_MASK
+ SQLITE_ENABLE_COSTMULT
+ SQLITE_ENABLE_CURSOR_HINTS
+ SQLITE_ENABLE_DBSTAT_VTAB
+ SQLITE_ENABLE_EXPENSIVE_ASSERT
+ SQLITE_ENABLE_FTS1
+ SQLITE_ENABLE_FTS2
+ SQLITE_ENABLE_FTS3
+ SQLITE_ENABLE_FTS3_PARENTHESIS
+ SQLITE_ENABLE_FTS3_TOKENIZER
+ SQLITE_ENABLE_FTS4
+ SQLITE_ENABLE_FTS5
+ SQLITE_ENABLE_HIDDEN_COLUMNS
+ SQLITE_ENABLE_ICU
+ SQLITE_ENABLE_IOTRACE
+ SQLITE_ENABLE_JSON1
+ SQLITE_ENABLE_LOAD_EXTENSION
+ SQLITE_ENABLE_LOCKING_STYLE
+ SQLITE_ENABLE_MEMORY_MANAGEMENT
+ SQLITE_ENABLE_MEMSYS3
+ SQLITE_ENABLE_MEMSYS5
+ SQLITE_ENABLE_MULTIPLEX
+ SQLITE_ENABLE_NULL_TRIM
+ SQLITE_ENABLE_OVERSIZE_CELL_CHECK
+ SQLITE_ENABLE_PREUPDATE_HOOK
+ SQLITE_ENABLE_RBU
+ SQLITE_ENABLE_RTREE
+ SQLITE_ENABLE_SELECTTRACE
+ SQLITE_ENABLE_SESSION
+ SQLITE_ENABLE_SNAPSHOT
+ SQLITE_ENABLE_SQLLOG
+ SQLITE_ENABLE_STMT_SCANSTATUS
+ SQLITE_ENABLE_UNKNOWN_SQL_FUNCTION
+ SQLITE_ENABLE_UNLOCK_NOTIFY
+ SQLITE_ENABLE_UPDATE_DELETE_LIMIT
+ SQLITE_ENABLE_URI_00_ERROR
+ SQLITE_ENABLE_VFSTRACE
+ SQLITE_ENABLE_WHERETRACE
+ SQLITE_ENABLE_ZIPVFS
+ SQLITE_EXPLAIN_ESTIMATED_ROWS
+ 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
+ SQLITE_INT64_TYPE
+ SQLITE_LIKE_DOESNT_MATCH_BLOBS
+ SQLITE_LOCK_TRACE
+ SQLITE_LOG_CACHE_SPILL
+ SQLITE_MEMDEBUG
+ SQLITE_MIXED_ENDIAN_64BIT_FLOAT
+ SQLITE_MMAP_READWRITE
+ SQLITE_MUTEX_NOOP
+ SQLITE_MUTEX_NREF
+ SQLITE_MUTEX_OMIT
+ SQLITE_MUTEX_PTHREADS
+ SQLITE_MUTEX_W32
+ SQLITE_NEED_ERR_NAME
+ SQLITE_NOINLINE
+ SQLITE_NO_SYNC
+ SQLITE_OMIT_ALTERTABLE
+ SQLITE_OMIT_ANALYZE
+ SQLITE_OMIT_ATTACH
+ SQLITE_OMIT_AUTHORIZATION
+ SQLITE_OMIT_AUTOINCREMENT
+ SQLITE_OMIT_AUTOINIT
+ SQLITE_OMIT_AUTOMATIC_INDEX
+ SQLITE_OMIT_AUTORESET
+ 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_DISKIO
+ SQLITE_OMIT_EXPLAIN
+ SQLITE_OMIT_FLAG_PRAGMAS
+ SQLITE_OMIT_FLOATING_POINT
+ SQLITE_OMIT_FOREIGN_KEY
+ SQLITE_OMIT_GET_TABLE
+ SQLITE_OMIT_HEX_INTEGER
+ SQLITE_OMIT_INCRBLOB
+ SQLITE_OMIT_INTEGRITY_CHECK
+ SQLITE_OMIT_LIKE_OPTIMIZATION
+ SQLITE_OMIT_LOAD_EXTENSION
+ SQLITE_OMIT_LOCALTIME
+ SQLITE_OMIT_LOOKASIDE
+ SQLITE_OMIT_MEMORYDB
+ SQLITE_OMIT_OR_OPTIMIZATION
+ SQLITE_OMIT_PAGER_PRAGMAS
+ SQLITE_OMIT_PARSER_TRACE
+ SQLITE_OMIT_POPEN
+ SQLITE_OMIT_PRAGMA
+ SQLITE_OMIT_PROGRESS_CALLBACK
+ SQLITE_OMIT_QUICKBALANCE
+ SQLITE_OMIT_REINDEX
+ SQLITE_OMIT_SCHEMA_PRAGMAS
+ SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS
+ SQLITE_OMIT_SHARED_CACHE
+ SQLITE_OMIT_SHUTDOWN_DIRECTORIES
+ SQLITE_OMIT_SUBQUERY
+ SQLITE_OMIT_TCL_VARIABLE
+ SQLITE_OMIT_TEMPDB
+ SQLITE_OMIT_TEST_CONTROL
+ SQLITE_OMIT_TRACE
+ SQLITE_OMIT_TRIGGER
+ SQLITE_OMIT_TRUNCATE_OPTIMIZATION
+ SQLITE_OMIT_UTF16
+ SQLITE_OMIT_VACUUM
+ SQLITE_OMIT_VIEW
+ SQLITE_OMIT_VIRTUALTABLE
+ SQLITE_OMIT_WAL
+ SQLITE_OMIT_WSD
+ 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
+ SQLITE_RTREE_INT_ONLY
+ SQLITE_SECURE_DELETE
+ SQLITE_SMALL_STACK
+ SQLITE_SOUNDEX
+ SQLITE_SUBSTR_COMPATIBILITY
+ SQLITE_SYSTEM_MALLOC
+ SQLITE_TCL
+ SQLITE_TEST
+ SQLITE_UNLINK_AFTER_CLOSE
+ SQLITE_UNTESTABLE
+ SQLITE_USE_ALLOCA
+ SQLITE_USE_FCNTL_TRACE
+ SQLITE_USER_AUTHENTICATION
+ SQLITE_USE_URI
+ SQLITE_VDBE_COVERAGE
+ SQLITE_WIN32_MALLOC
+ SQLITE_ZERO_MALLOC
+}
+
+# All compile time options for which the assigned value is other than boolean.
+#
+set value_options {
+ SQLITE_BITMASK_TYPE
+ SQLITE_DEFAULT_CACHE_SIZE
+ SQLITE_DEFAULT_FILE_FORMAT
+ 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
+ SQLITE_DEFAULT_PROXYDIR_PERMISSIONS
+ SQLITE_DEFAULT_ROWEST
+ SQLITE_DEFAULT_SECTOR_SIZE
+ SQLITE_DEFAULT_SYNCHRONOUS
+ SQLITE_DEFAULT_WAL_AUTOCHECKPOINT
+ SQLITE_DEFAULT_WAL_SYNCHRONOUS
+ SQLITE_DEFAULT_WORKER_THREADS
+ SQLITE_ENABLE_8_3_NAMES
+ SQLITE_ENABLE_LOCKING_STYLE
+ SQLITE_EXTRA_INIT
+ SQLITE_EXTRA_SHUTDOWN
+ SQLITE_FTS3_MAX_EXPR_DEPTH
+ SQLITE_INTEGRITY_CHECK_ERROR_MAX
+ SQLITE_MALLOC_SOFT_LIMIT
+ SQLITE_MAX_ATTACHED
+ SQLITE_MAX_COLUMN
+ SQLITE_MAX_COMPOUND_SELECT
+ SQLITE_MAX_DEFAULT_PAGE_SIZE
+ SQLITE_MAX_EXPR_DEPTH
+ SQLITE_MAX_FUNCTION_ARG
+ SQLITE_MAX_LENGTH
+ SQLITE_MAX_LIKE_PATTERN_LENGTH
+ SQLITE_MAX_MEMORY
+ SQLITE_MAX_MMAP_SIZE
+ SQLITE_MAX_MMAP_SIZE_
+ SQLITE_MAX_PAGE_COUNT
+ SQLITE_MAX_PAGE_SIZE
+ SQLITE_MAX_SCHEMA_RETRY
+ SQLITE_MAX_SQL_LENGTH
+ SQLITE_MAX_TRIGGER_DEPTH
+ SQLITE_MAX_VARIABLE_NUMBER
+ SQLITE_MAX_VDBE_OP
+ SQLITE_MAX_WORKER_THREADS
+ SQLITE_SORTER_PMASZ
+ SQLITE_STAT4_SAMPLES
+ SQLITE_STMTJRNL_SPILL
+ SQLITE_TEMP_STORE
+ SQLITE_THREADSAFE
+}
+
+# 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__) "."
+ CTIMEOPT_VAL(__clang_minor__) "."
+ CTIMEOPT_VAL(__clang_patchlevel__),
+#elif defined(_MSC_VER)
+ "COMPILER=msvc-" CTIMEOPT_VAL(_MSC_VER),
+#elif defined(__GNUC__) && defined(__VERSION__)
+ "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]
+ }
+ return $ret
+}
+
+foreach b $boolean_options {
+ set name [trim_name $b]
+ set options($name) [subst {
+#if $b
+ "$name",
+#endif
+}]
+}
+
+foreach v $value_options {
+ set name [trim_name $v]
+ set options($name) [subst {
+#ifdef $v
+ "$name=" CTIMEOPT_VAL($v),
+#endif
+}]
+}
+
+foreach o [lsort [array names options]] {
+ puts [string trim $options($o)]
+}
+
+