xref: /sqlite-3.40.0/src/ctime.c (revision f2afe4e8)
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 #endif
185 #ifdef SQLITE_DISABLE_LFS
186   "DISABLE_LFS",
187 #endif
188 #ifdef SQLITE_DISABLE_PAGECACHE_OVERFLOW_STATS
189   "DISABLE_PAGECACHE_OVERFLOW_STATS",
190 #endif
191 #ifdef SQLITE_DISABLE_SKIPAHEAD_DISTINCT
192   "DISABLE_SKIPAHEAD_DISTINCT",
193 #endif
194 #ifdef SQLITE_ENABLE_8_3_NAMES
195   "ENABLE_8_3_NAMES=" CTIMEOPT_VAL(SQLITE_ENABLE_8_3_NAMES),
196 #endif
197 #ifdef SQLITE_ENABLE_API_ARMOR
198   "ENABLE_API_ARMOR",
199 #endif
200 #ifdef SQLITE_ENABLE_ATOMIC_WRITE
201   "ENABLE_ATOMIC_WRITE",
202 #endif
203 #ifdef SQLITE_ENABLE_BATCH_ATOMIC_WRITE
204   "ENABLE_BATCH_ATOMIC_WRITE",
205 #endif
206 #ifdef SQLITE_ENABLE_BYTECODE_VTAB
207   "ENABLE_BYTECODE_VTAB",
208 #endif
209 #ifdef SQLITE_ENABLE_CEROD
210   "ENABLE_CEROD=" CTIMEOPT_VAL(SQLITE_ENABLE_CEROD),
211 #endif
212 #ifdef SQLITE_ENABLE_COLUMN_METADATA
213   "ENABLE_COLUMN_METADATA",
214 #endif
215 #ifdef SQLITE_ENABLE_COLUMN_USED_MASK
216   "ENABLE_COLUMN_USED_MASK",
217 #endif
218 #ifdef SQLITE_ENABLE_COSTMULT
219   "ENABLE_COSTMULT",
220 #endif
221 #ifdef SQLITE_ENABLE_CURSOR_HINTS
222   "ENABLE_CURSOR_HINTS",
223 #endif
224 #ifdef SQLITE_ENABLE_DBPAGE_VTAB
225   "ENABLE_DBPAGE_VTAB",
226 #endif
227 #ifdef SQLITE_ENABLE_DBSTAT_VTAB
228   "ENABLE_DBSTAT_VTAB",
229 #endif
230 #ifdef SQLITE_ENABLE_EXPENSIVE_ASSERT
231   "ENABLE_EXPENSIVE_ASSERT",
232 #endif
233 #ifdef SQLITE_ENABLE_EXPLAIN_COMMENTS
234   "ENABLE_EXPLAIN_COMMENTS",
235 #endif
236 #ifdef SQLITE_ENABLE_FTS3
237   "ENABLE_FTS3",
238 #endif
239 #ifdef SQLITE_ENABLE_FTS3_PARENTHESIS
240   "ENABLE_FTS3_PARENTHESIS",
241 #endif
242 #ifdef SQLITE_ENABLE_FTS3_TOKENIZER
243   "ENABLE_FTS3_TOKENIZER",
244 #endif
245 #ifdef SQLITE_ENABLE_FTS4
246   "ENABLE_FTS4",
247 #endif
248 #ifdef SQLITE_ENABLE_FTS5
249   "ENABLE_FTS5",
250 #endif
251 #ifdef SQLITE_ENABLE_GEOPOLY
252   "ENABLE_GEOPOLY",
253 #endif
254 #ifdef SQLITE_ENABLE_HIDDEN_COLUMNS
255   "ENABLE_HIDDEN_COLUMNS",
256 #endif
257 #ifdef SQLITE_ENABLE_ICU
258   "ENABLE_ICU",
259 #endif
260 #ifdef SQLITE_ENABLE_IOTRACE
261   "ENABLE_IOTRACE",
262 #endif
263 #ifdef SQLITE_ENABLE_LOAD_EXTENSION
264   "ENABLE_LOAD_EXTENSION",
265 #endif
266 #ifdef SQLITE_ENABLE_LOCKING_STYLE
267   "ENABLE_LOCKING_STYLE=" CTIMEOPT_VAL(SQLITE_ENABLE_LOCKING_STYLE),
268 #endif
269 #ifdef SQLITE_ENABLE_MATH_FUNCTIONS
270   "ENABLE_MATH_FUNCTIONS",
271 #endif
272 #ifdef SQLITE_ENABLE_MEMORY_MANAGEMENT
273   "ENABLE_MEMORY_MANAGEMENT",
274 #endif
275 #ifdef SQLITE_ENABLE_MEMSYS3
276   "ENABLE_MEMSYS3",
277 #endif
278 #ifdef SQLITE_ENABLE_MEMSYS5
279   "ENABLE_MEMSYS5",
280 #endif
281 #ifdef SQLITE_ENABLE_MULTIPLEX
282   "ENABLE_MULTIPLEX",
283 #endif
284 #ifdef SQLITE_ENABLE_NORMALIZE
285   "ENABLE_NORMALIZE",
286 #endif
287 #ifdef SQLITE_ENABLE_NULL_TRIM
288   "ENABLE_NULL_TRIM",
289 #endif
290 #ifdef SQLITE_ENABLE_OFFSET_SQL_FUNC
291   "ENABLE_OFFSET_SQL_FUNC",
292 #endif
293 #ifdef SQLITE_ENABLE_OVERSIZE_CELL_CHECK
294   "ENABLE_OVERSIZE_CELL_CHECK",
295 #endif
296 #ifdef SQLITE_ENABLE_PREUPDATE_HOOK
297   "ENABLE_PREUPDATE_HOOK",
298 #endif
299 #ifdef SQLITE_ENABLE_QPSG
300   "ENABLE_QPSG",
301 #endif
302 #ifdef SQLITE_ENABLE_RBU
303   "ENABLE_RBU",
304 #endif
305 #ifdef SQLITE_ENABLE_RTREE
306   "ENABLE_RTREE",
307 #endif
308 #ifdef SQLITE_ENABLE_SELECTTRACE
309   "ENABLE_SELECTTRACE",
310 #endif
311 #ifdef SQLITE_ENABLE_SESSION
312   "ENABLE_SESSION",
313 #endif
314 #ifdef SQLITE_ENABLE_SNAPSHOT
315   "ENABLE_SNAPSHOT",
316 #endif
317 #ifdef SQLITE_ENABLE_SORTER_REFERENCES
318   "ENABLE_SORTER_REFERENCES",
319 #endif
320 #ifdef SQLITE_ENABLE_SQLLOG
321   "ENABLE_SQLLOG",
322 #endif
323 #ifdef SQLITE_ENABLE_STAT4
324   "ENABLE_STAT4",
325 #endif
326 #ifdef SQLITE_ENABLE_STMTVTAB
327   "ENABLE_STMTVTAB",
328 #endif
329 #ifdef SQLITE_ENABLE_STMT_SCANSTATUS
330   "ENABLE_STMT_SCANSTATUS",
331 #endif
332 #ifdef SQLITE_ENABLE_UNKNOWN_SQL_FUNCTION
333   "ENABLE_UNKNOWN_SQL_FUNCTION",
334 #endif
335 #ifdef SQLITE_ENABLE_UNLOCK_NOTIFY
336   "ENABLE_UNLOCK_NOTIFY",
337 #endif
338 #ifdef SQLITE_ENABLE_UPDATE_DELETE_LIMIT
339   "ENABLE_UPDATE_DELETE_LIMIT",
340 #endif
341 #ifdef SQLITE_ENABLE_URI_00_ERROR
342   "ENABLE_URI_00_ERROR",
343 #endif
344 #ifdef SQLITE_ENABLE_VFSTRACE
345   "ENABLE_VFSTRACE",
346 #endif
347 #ifdef SQLITE_ENABLE_WHERETRACE
348   "ENABLE_WHERETRACE",
349 #endif
350 #ifdef SQLITE_ENABLE_ZIPVFS
351   "ENABLE_ZIPVFS",
352 #endif
353 #ifdef SQLITE_EXPLAIN_ESTIMATED_ROWS
354   "EXPLAIN_ESTIMATED_ROWS",
355 #endif
356 #ifdef SQLITE_EXTRA_IFNULLROW
357   "EXTRA_IFNULLROW",
358 #endif
359 #ifdef SQLITE_EXTRA_INIT
360   "EXTRA_INIT=" CTIMEOPT_VAL(SQLITE_EXTRA_INIT),
361 #endif
362 #ifdef SQLITE_EXTRA_SHUTDOWN
363   "EXTRA_SHUTDOWN=" CTIMEOPT_VAL(SQLITE_EXTRA_SHUTDOWN),
364 #endif
365 #ifdef SQLITE_FTS3_MAX_EXPR_DEPTH
366   "FTS3_MAX_EXPR_DEPTH=" CTIMEOPT_VAL(SQLITE_FTS3_MAX_EXPR_DEPTH),
367 #endif
368 #ifdef SQLITE_FTS5_ENABLE_TEST_MI
369   "FTS5_ENABLE_TEST_MI",
370 #endif
371 #ifdef SQLITE_FTS5_NO_WITHOUT_ROWID
372   "FTS5_NO_WITHOUT_ROWID",
373 #endif
374 #if HAVE_ISNAN || SQLITE_HAVE_ISNAN
375   "HAVE_ISNAN",
376 #endif
377 #ifdef SQLITE_HOMEGROWN_RECURSIVE_MUTEX
378 # if SQLITE_HOMEGROWN_RECURSIVE_MUTEX != 1
379   "HOMEGROWN_RECURSIVE_MUTEX=" CTIMEOPT_VAL(SQLITE_HOMEGROWN_RECURSIVE_MUTEX),
380 # endif
381 #endif
382 #ifdef SQLITE_IGNORE_AFP_LOCK_ERRORS
383   "IGNORE_AFP_LOCK_ERRORS",
384 #endif
385 #ifdef SQLITE_IGNORE_FLOCK_LOCK_ERRORS
386   "IGNORE_FLOCK_LOCK_ERRORS",
387 #endif
388 #ifdef SQLITE_INLINE_MEMCPY
389   "INLINE_MEMCPY",
390 #endif
391 #ifdef SQLITE_INT64_TYPE
392   "INT64_TYPE",
393 #endif
394 #ifdef SQLITE_INTEGRITY_CHECK_ERROR_MAX
395   "INTEGRITY_CHECK_ERROR_MAX=" CTIMEOPT_VAL(SQLITE_INTEGRITY_CHECK_ERROR_MAX),
396 #endif
397 #ifdef SQLITE_LIKE_DOESNT_MATCH_BLOBS
398   "LIKE_DOESNT_MATCH_BLOBS",
399 #endif
400 #ifdef SQLITE_LOCK_TRACE
401   "LOCK_TRACE",
402 #endif
403 #ifdef SQLITE_LOG_CACHE_SPILL
404   "LOG_CACHE_SPILL",
405 #endif
406 #ifdef SQLITE_MALLOC_SOFT_LIMIT
407   "MALLOC_SOFT_LIMIT=" CTIMEOPT_VAL(SQLITE_MALLOC_SOFT_LIMIT),
408 #endif
409 #ifdef SQLITE_MAX_ATTACHED
410   "MAX_ATTACHED=" CTIMEOPT_VAL(SQLITE_MAX_ATTACHED),
411 #endif
412 #ifdef SQLITE_MAX_COLUMN
413   "MAX_COLUMN=" CTIMEOPT_VAL(SQLITE_MAX_COLUMN),
414 #endif
415 #ifdef SQLITE_MAX_COMPOUND_SELECT
416   "MAX_COMPOUND_SELECT=" CTIMEOPT_VAL(SQLITE_MAX_COMPOUND_SELECT),
417 #endif
418 #ifdef SQLITE_MAX_DEFAULT_PAGE_SIZE
419   "MAX_DEFAULT_PAGE_SIZE=" CTIMEOPT_VAL(SQLITE_MAX_DEFAULT_PAGE_SIZE),
420 #endif
421 #ifdef SQLITE_MAX_EXPR_DEPTH
422   "MAX_EXPR_DEPTH=" CTIMEOPT_VAL(SQLITE_MAX_EXPR_DEPTH),
423 #endif
424 #ifdef SQLITE_MAX_FUNCTION_ARG
425   "MAX_FUNCTION_ARG=" CTIMEOPT_VAL(SQLITE_MAX_FUNCTION_ARG),
426 #endif
427 #ifdef SQLITE_MAX_LENGTH
428   "MAX_LENGTH=" CTIMEOPT_VAL(SQLITE_MAX_LENGTH),
429 #endif
430 #ifdef SQLITE_MAX_LIKE_PATTERN_LENGTH
431   "MAX_LIKE_PATTERN_LENGTH=" CTIMEOPT_VAL(SQLITE_MAX_LIKE_PATTERN_LENGTH),
432 #endif
433 #ifdef SQLITE_MAX_MEMORY
434   "MAX_MEMORY=" CTIMEOPT_VAL(SQLITE_MAX_MEMORY),
435 #endif
436 #ifdef SQLITE_MAX_MMAP_SIZE
437   "MAX_MMAP_SIZE=" CTIMEOPT_VAL(SQLITE_MAX_MMAP_SIZE),
438 #endif
439 #ifdef SQLITE_MAX_MMAP_SIZE_
440   "MAX_MMAP_SIZE_=" CTIMEOPT_VAL(SQLITE_MAX_MMAP_SIZE_),
441 #endif
442 #ifdef SQLITE_MAX_PAGE_COUNT
443   "MAX_PAGE_COUNT=" CTIMEOPT_VAL(SQLITE_MAX_PAGE_COUNT),
444 #endif
445 #ifdef SQLITE_MAX_PAGE_SIZE
446   "MAX_PAGE_SIZE=" CTIMEOPT_VAL(SQLITE_MAX_PAGE_SIZE),
447 #endif
448 #ifdef SQLITE_MAX_SCHEMA_RETRY
449   "MAX_SCHEMA_RETRY=" CTIMEOPT_VAL(SQLITE_MAX_SCHEMA_RETRY),
450 #endif
451 #ifdef SQLITE_MAX_SQL_LENGTH
452   "MAX_SQL_LENGTH=" CTIMEOPT_VAL(SQLITE_MAX_SQL_LENGTH),
453 #endif
454 #ifdef SQLITE_MAX_TRIGGER_DEPTH
455   "MAX_TRIGGER_DEPTH=" CTIMEOPT_VAL(SQLITE_MAX_TRIGGER_DEPTH),
456 #endif
457 #ifdef SQLITE_MAX_VARIABLE_NUMBER
458   "MAX_VARIABLE_NUMBER=" CTIMEOPT_VAL(SQLITE_MAX_VARIABLE_NUMBER),
459 #endif
460 #ifdef SQLITE_MAX_VDBE_OP
461   "MAX_VDBE_OP=" CTIMEOPT_VAL(SQLITE_MAX_VDBE_OP),
462 #endif
463 #ifdef SQLITE_MAX_WORKER_THREADS
464   "MAX_WORKER_THREADS=" CTIMEOPT_VAL(SQLITE_MAX_WORKER_THREADS),
465 #endif
466 #ifdef SQLITE_MEMDEBUG
467   "MEMDEBUG",
468 #endif
469 #ifdef SQLITE_MIXED_ENDIAN_64BIT_FLOAT
470   "MIXED_ENDIAN_64BIT_FLOAT",
471 #endif
472 #ifdef SQLITE_MMAP_READWRITE
473   "MMAP_READWRITE",
474 #endif
475 #ifdef SQLITE_MUTEX_NOOP
476   "MUTEX_NOOP",
477 #endif
478 #ifdef SQLITE_MUTEX_OMIT
479   "MUTEX_OMIT",
480 #endif
481 #ifdef SQLITE_MUTEX_PTHREADS
482   "MUTEX_PTHREADS",
483 #endif
484 #ifdef SQLITE_MUTEX_W32
485   "MUTEX_W32",
486 #endif
487 #ifdef SQLITE_NEED_ERR_NAME
488   "NEED_ERR_NAME",
489 #endif
490 #ifdef SQLITE_NO_SYNC
491   "NO_SYNC",
492 #endif
493 #ifdef SQLITE_OMIT_ALTERTABLE
494   "OMIT_ALTERTABLE",
495 #endif
496 #ifdef SQLITE_OMIT_ANALYZE
497   "OMIT_ANALYZE",
498 #endif
499 #ifdef SQLITE_OMIT_ATTACH
500   "OMIT_ATTACH",
501 #endif
502 #ifdef SQLITE_OMIT_AUTHORIZATION
503   "OMIT_AUTHORIZATION",
504 #endif
505 #ifdef SQLITE_OMIT_AUTOINCREMENT
506   "OMIT_AUTOINCREMENT",
507 #endif
508 #ifdef SQLITE_OMIT_AUTOINIT
509   "OMIT_AUTOINIT",
510 #endif
511 #ifdef SQLITE_OMIT_AUTOMATIC_INDEX
512   "OMIT_AUTOMATIC_INDEX",
513 #endif
514 #ifdef SQLITE_OMIT_AUTORESET
515   "OMIT_AUTORESET",
516 #endif
517 #ifdef SQLITE_OMIT_AUTOVACUUM
518   "OMIT_AUTOVACUUM",
519 #endif
520 #ifdef SQLITE_OMIT_BETWEEN_OPTIMIZATION
521   "OMIT_BETWEEN_OPTIMIZATION",
522 #endif
523 #ifdef SQLITE_OMIT_BLOB_LITERAL
524   "OMIT_BLOB_LITERAL",
525 #endif
526 #ifdef SQLITE_OMIT_CAST
527   "OMIT_CAST",
528 #endif
529 #ifdef SQLITE_OMIT_CHECK
530   "OMIT_CHECK",
531 #endif
532 #ifdef SQLITE_OMIT_COMPLETE
533   "OMIT_COMPLETE",
534 #endif
535 #ifdef SQLITE_OMIT_COMPOUND_SELECT
536   "OMIT_COMPOUND_SELECT",
537 #endif
538 #ifdef SQLITE_OMIT_CONFLICT_CLAUSE
539   "OMIT_CONFLICT_CLAUSE",
540 #endif
541 #ifdef SQLITE_OMIT_CTE
542   "OMIT_CTE",
543 #endif
544 #if defined(SQLITE_OMIT_DATETIME_FUNCS) || defined(SQLITE_OMIT_FLOATING_POINT)
545   "OMIT_DATETIME_FUNCS",
546 #endif
547 #ifdef SQLITE_OMIT_DECLTYPE
548   "OMIT_DECLTYPE",
549 #endif
550 #ifdef SQLITE_OMIT_DEPRECATED
551   "OMIT_DEPRECATED",
552 #endif
553 #ifdef SQLITE_OMIT_DESERIALIZE
554   "OMIT_DESERIALIZE",
555 #endif
556 #ifdef SQLITE_OMIT_DISKIO
557   "OMIT_DISKIO",
558 #endif
559 #ifdef SQLITE_OMIT_EXPLAIN
560   "OMIT_EXPLAIN",
561 #endif
562 #ifdef SQLITE_OMIT_FLAG_PRAGMAS
563   "OMIT_FLAG_PRAGMAS",
564 #endif
565 #ifdef SQLITE_OMIT_FLOATING_POINT
566   "OMIT_FLOATING_POINT",
567 #endif
568 #ifdef SQLITE_OMIT_FOREIGN_KEY
569   "OMIT_FOREIGN_KEY",
570 #endif
571 #ifdef SQLITE_OMIT_GET_TABLE
572   "OMIT_GET_TABLE",
573 #endif
574 #ifdef SQLITE_OMIT_HEX_INTEGER
575   "OMIT_HEX_INTEGER",
576 #endif
577 #ifdef SQLITE_OMIT_INCRBLOB
578   "OMIT_INCRBLOB",
579 #endif
580 #ifdef SQLITE_OMIT_INTEGRITY_CHECK
581   "OMIT_INTEGRITY_CHECK",
582 #endif
583 #ifdef SQLITE_OMIT_INTROSPECTION_PRAGMAS
584   "OMIT_INTROSPECTION_PRAGMAS",
585 #endif
586 #ifdef SQLITE_OMIT_LIKE_OPTIMIZATION
587   "OMIT_LIKE_OPTIMIZATION",
588 #endif
589 #ifdef SQLITE_OMIT_LOAD_EXTENSION
590   "OMIT_LOAD_EXTENSION",
591 #endif
592 #ifdef SQLITE_OMIT_LOCALTIME
593   "OMIT_LOCALTIME",
594 #endif
595 #ifdef SQLITE_OMIT_LOOKASIDE
596   "OMIT_LOOKASIDE",
597 #endif
598 #ifdef SQLITE_OMIT_MEMORYDB
599   "OMIT_MEMORYDB",
600 #endif
601 #ifdef SQLITE_OMIT_OR_OPTIMIZATION
602   "OMIT_OR_OPTIMIZATION",
603 #endif
604 #ifdef SQLITE_OMIT_PAGER_PRAGMAS
605   "OMIT_PAGER_PRAGMAS",
606 #endif
607 #ifdef SQLITE_OMIT_PARSER_TRACE
608   "OMIT_PARSER_TRACE",
609 #endif
610 #ifdef SQLITE_OMIT_POPEN
611   "OMIT_POPEN",
612 #endif
613 #ifdef SQLITE_OMIT_PRAGMA
614   "OMIT_PRAGMA",
615 #endif
616 #ifdef SQLITE_OMIT_PROGRESS_CALLBACK
617   "OMIT_PROGRESS_CALLBACK",
618 #endif
619 #ifdef SQLITE_OMIT_QUICKBALANCE
620   "OMIT_QUICKBALANCE",
621 #endif
622 #ifdef SQLITE_OMIT_REINDEX
623   "OMIT_REINDEX",
624 #endif
625 #ifdef SQLITE_OMIT_SCHEMA_PRAGMAS
626   "OMIT_SCHEMA_PRAGMAS",
627 #endif
628 #ifdef SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS
629   "OMIT_SCHEMA_VERSION_PRAGMAS",
630 #endif
631 #ifdef SQLITE_OMIT_SHARED_CACHE
632   "OMIT_SHARED_CACHE",
633 #endif
634 #ifdef SQLITE_OMIT_SHUTDOWN_DIRECTORIES
635   "OMIT_SHUTDOWN_DIRECTORIES",
636 #endif
637 #ifdef SQLITE_OMIT_SUBQUERY
638   "OMIT_SUBQUERY",
639 #endif
640 #ifdef SQLITE_OMIT_TCL_VARIABLE
641   "OMIT_TCL_VARIABLE",
642 #endif
643 #ifdef SQLITE_OMIT_TEMPDB
644   "OMIT_TEMPDB",
645 #endif
646 #ifdef SQLITE_OMIT_TEST_CONTROL
647   "OMIT_TEST_CONTROL",
648 #endif
649 #ifdef SQLITE_OMIT_TRACE
650 # if SQLITE_OMIT_TRACE != 1
651   "OMIT_TRACE=" CTIMEOPT_VAL(SQLITE_OMIT_TRACE),
652 # endif
653 #endif
654 #ifdef SQLITE_OMIT_TRIGGER
655   "OMIT_TRIGGER",
656 #endif
657 #ifdef SQLITE_OMIT_TRUNCATE_OPTIMIZATION
658   "OMIT_TRUNCATE_OPTIMIZATION",
659 #endif
660 #ifdef SQLITE_OMIT_UTF16
661   "OMIT_UTF16",
662 #endif
663 #ifdef SQLITE_OMIT_VACUUM
664   "OMIT_VACUUM",
665 #endif
666 #ifdef SQLITE_OMIT_VIEW
667   "OMIT_VIEW",
668 #endif
669 #ifdef SQLITE_OMIT_VIRTUALTABLE
670   "OMIT_VIRTUALTABLE",
671 #endif
672 #ifdef SQLITE_OMIT_WAL
673   "OMIT_WAL",
674 #endif
675 #ifdef SQLITE_OMIT_WSD
676   "OMIT_WSD",
677 #endif
678 #ifdef SQLITE_OMIT_XFER_OPT
679   "OMIT_XFER_OPT",
680 #endif
681 #ifdef SQLITE_PCACHE_SEPARATE_HEADER
682   "PCACHE_SEPARATE_HEADER",
683 #endif
684 #ifdef SQLITE_PERFORMANCE_TRACE
685   "PERFORMANCE_TRACE",
686 #endif
687 #ifdef SQLITE_POWERSAFE_OVERWRITE
688 # if SQLITE_POWERSAFE_OVERWRITE != 1
689   "POWERSAFE_OVERWRITE=" CTIMEOPT_VAL(SQLITE_POWERSAFE_OVERWRITE),
690 # endif
691 #endif
692 #ifdef SQLITE_PREFER_PROXY_LOCKING
693   "PREFER_PROXY_LOCKING",
694 #endif
695 #ifdef SQLITE_PROXY_DEBUG
696   "PROXY_DEBUG",
697 #endif
698 #ifdef SQLITE_REVERSE_UNORDERED_SELECTS
699   "REVERSE_UNORDERED_SELECTS",
700 #endif
701 #ifdef SQLITE_RTREE_INT_ONLY
702   "RTREE_INT_ONLY",
703 #endif
704 #ifdef SQLITE_SECURE_DELETE
705   "SECURE_DELETE",
706 #endif
707 #ifdef SQLITE_SMALL_STACK
708   "SMALL_STACK",
709 #endif
710 #ifdef SQLITE_SORTER_PMASZ
711   "SORTER_PMASZ=" CTIMEOPT_VAL(SQLITE_SORTER_PMASZ),
712 #endif
713 #ifdef SQLITE_SOUNDEX
714   "SOUNDEX",
715 #endif
716 #ifdef SQLITE_STAT4_SAMPLES
717   "STAT4_SAMPLES=" CTIMEOPT_VAL(SQLITE_STAT4_SAMPLES),
718 #endif
719 #ifdef SQLITE_STMTJRNL_SPILL
720   "STMTJRNL_SPILL=" CTIMEOPT_VAL(SQLITE_STMTJRNL_SPILL),
721 #endif
722 #ifdef SQLITE_SUBSTR_COMPATIBILITY
723   "SUBSTR_COMPATIBILITY",
724 #endif
725 #if (!defined(SQLITE_WIN32_MALLOC) \
726      && !defined(SQLITE_ZERO_MALLOC) \
727      && !defined(SQLITE_MEMDEBUG) \
728     ) || defined(SQLITE_SYSTEM_MALLOC)
729   "SYSTEM_MALLOC",
730 #endif
731 #ifdef SQLITE_TCL
732   "TCL",
733 #endif
734 #ifdef SQLITE_TEMP_STORE
735   "TEMP_STORE=" CTIMEOPT_VAL(SQLITE_TEMP_STORE),
736 #endif
737 #ifdef SQLITE_TEST
738   "TEST",
739 #endif
740 #if defined(SQLITE_THREADSAFE)
741   "THREADSAFE=" CTIMEOPT_VAL(SQLITE_THREADSAFE),
742 #elif defined(THREADSAFE)
743   "THREADSAFE=" CTIMEOPT_VAL(THREADSAFE),
744 #else
745   "THREADSAFE=1",
746 #endif
747 #ifdef SQLITE_UNLINK_AFTER_CLOSE
748   "UNLINK_AFTER_CLOSE",
749 #endif
750 #ifdef SQLITE_UNTESTABLE
751   "UNTESTABLE",
752 #endif
753 #ifdef SQLITE_USER_AUTHENTICATION
754   "USER_AUTHENTICATION",
755 #endif
756 #ifdef SQLITE_USE_ALLOCA
757   "USE_ALLOCA",
758 #endif
759 #ifdef SQLITE_USE_FCNTL_TRACE
760   "USE_FCNTL_TRACE",
761 #endif
762 #ifdef SQLITE_USE_URI
763   "USE_URI",
764 #endif
765 #ifdef SQLITE_VDBE_COVERAGE
766   "VDBE_COVERAGE",
767 #endif
768 #ifdef SQLITE_WIN32_MALLOC
769   "WIN32_MALLOC",
770 #endif
771 #ifdef SQLITE_ZERO_MALLOC
772   "ZERO_MALLOC",
773 #endif
774 /*
775 ** END CODE GENERATED BY tool/mkctime.tcl
776 */
777 };
778 
779 const char **sqlite3CompileOptions(int *pnOpt){
780   *pnOpt = sizeof(sqlite3azCompileOpt) / sizeof(sqlite3azCompileOpt[0]);
781   return (const char**)sqlite3azCompileOpt;
782 }
783 
784 #endif /* SQLITE_OMIT_COMPILEOPTION_DIAGS */
785