xref: /sqlite-3.40.0/src/ctime.c (revision bbade8d1)
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 
17 #ifndef SQLITE_OMIT_COMPILEOPTION_DIAGS
18 
19 /*
20 ** Include the configuration header output by 'configure' if we're using the
21 ** autoconf-based build
22 */
23 #if defined(_HAVE_SQLITE_CONFIG_H) && !defined(SQLITECONFIG_H)
24 #include "config.h"
25 #define SQLITECONFIG_H 1
26 #endif
27 
28 /* These macros are provided to "stringify" the value of the define
29 ** for those options in which the value is meaningful. */
30 #define CTIMEOPT_VAL_(opt) #opt
31 #define CTIMEOPT_VAL(opt) CTIMEOPT_VAL_(opt)
32 
33 /*
34 ** An array of names of all compile-time options.  This array should
35 ** be sorted A-Z.
36 **
37 ** This array looks large, but in a typical installation actually uses
38 ** only a handful of compile-time options, so most times this array is usually
39 ** rather short and uses little memory space.
40 */
41 static const char * const sqlite3azCompileOpt[] = {
42 
43 /*
44 ** BEGIN CODE GENERATED BY tool/mkctime.tcl
45 */
46 #if SQLITE_32BIT_ROWID
47   "32BIT_ROWID",
48 #endif
49 #if SQLITE_4_BYTE_ALIGNED_MALLOC
50   "4_BYTE_ALIGNED_MALLOC",
51 #endif
52 #if SQLITE_64BIT_STATS
53   "64BIT_STATS",
54 #endif
55 #if SQLITE_ALLOW_COVERING_INDEX_SCAN
56   "ALLOW_COVERING_INDEX_SCAN",
57 #endif
58 #if SQLITE_ALLOW_URI_AUTHORITY
59   "ALLOW_URI_AUTHORITY",
60 #endif
61 #ifdef SQLITE_BITMASK_TYPE
62   "BITMASK_TYPE=" CTIMEOPT_VAL(SQLITE_BITMASK_TYPE),
63 #endif
64 #if SQLITE_BUG_COMPATIBLE_20160819
65   "BUG_COMPATIBLE_20160819",
66 #endif
67 #if SQLITE_CASE_SENSITIVE_LIKE
68   "CASE_SENSITIVE_LIKE",
69 #endif
70 #if SQLITE_CHECK_PAGES
71   "CHECK_PAGES",
72 #endif
73 #if defined(__clang__) && defined(__clang_major__)
74   "COMPILER=clang-" CTIMEOPT_VAL(__clang_major__) "."
75                     CTIMEOPT_VAL(__clang_minor__) "."
76                     CTIMEOPT_VAL(__clang_patchlevel__),
77 #elif defined(_MSC_VER)
78   "COMPILER=msvc-" CTIMEOPT_VAL(_MSC_VER),
79 #elif defined(__GNUC__) && defined(__VERSION__)
80   "COMPILER=gcc-" __VERSION__,
81 #endif
82 #if SQLITE_COVERAGE_TEST
83   "COVERAGE_TEST",
84 #endif
85 #if SQLITE_DEBUG
86   "DEBUG",
87 #endif
88 #if SQLITE_DEFAULT_AUTOMATIC_INDEX
89   "DEFAULT_AUTOMATIC_INDEX",
90 #endif
91 #if SQLITE_DEFAULT_AUTOVACUUM
92   "DEFAULT_AUTOVACUUM",
93 #endif
94 #ifdef SQLITE_DEFAULT_CACHE_SIZE
95   "DEFAULT_CACHE_SIZE=" CTIMEOPT_VAL(SQLITE_DEFAULT_CACHE_SIZE),
96 #endif
97 #if SQLITE_DEFAULT_CKPTFULLFSYNC
98   "DEFAULT_CKPTFULLFSYNC",
99 #endif
100 #ifdef SQLITE_DEFAULT_FILE_FORMAT
101   "DEFAULT_FILE_FORMAT=" CTIMEOPT_VAL(SQLITE_DEFAULT_FILE_FORMAT),
102 #endif
103 #ifdef SQLITE_DEFAULT_FILE_PERMISSIONS
104   "DEFAULT_FILE_PERMISSIONS=" CTIMEOPT_VAL(SQLITE_DEFAULT_FILE_PERMISSIONS),
105 #endif
106 #if SQLITE_DEFAULT_FOREIGN_KEYS
107   "DEFAULT_FOREIGN_KEYS",
108 #endif
109 #ifdef SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT
110   "DEFAULT_JOURNAL_SIZE_LIMIT=" CTIMEOPT_VAL(SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT),
111 #endif
112 #ifdef SQLITE_DEFAULT_LOCKING_MODE
113   "DEFAULT_LOCKING_MODE=" CTIMEOPT_VAL(SQLITE_DEFAULT_LOCKING_MODE),
114 #endif
115 #ifdef SQLITE_DEFAULT_LOOKASIDE
116   "DEFAULT_LOOKASIDE=" CTIMEOPT_VAL(SQLITE_DEFAULT_LOOKASIDE),
117 #endif
118 #if SQLITE_DEFAULT_MEMSTATUS
119   "DEFAULT_MEMSTATUS",
120 #endif
121 #ifdef SQLITE_DEFAULT_MMAP_SIZE
122   "DEFAULT_MMAP_SIZE=" CTIMEOPT_VAL(SQLITE_DEFAULT_MMAP_SIZE),
123 #endif
124 #ifdef SQLITE_DEFAULT_PAGE_SIZE
125   "DEFAULT_PAGE_SIZE=" CTIMEOPT_VAL(SQLITE_DEFAULT_PAGE_SIZE),
126 #endif
127 #ifdef SQLITE_DEFAULT_PCACHE_INITSZ
128   "DEFAULT_PCACHE_INITSZ=" CTIMEOPT_VAL(SQLITE_DEFAULT_PCACHE_INITSZ),
129 #endif
130 #ifdef SQLITE_DEFAULT_PROXYDIR_PERMISSIONS
131   "DEFAULT_PROXYDIR_PERMISSIONS=" CTIMEOPT_VAL(SQLITE_DEFAULT_PROXYDIR_PERMISSIONS),
132 #endif
133 #if SQLITE_DEFAULT_RECURSIVE_TRIGGERS
134   "DEFAULT_RECURSIVE_TRIGGERS",
135 #endif
136 #ifdef SQLITE_DEFAULT_ROWEST
137   "DEFAULT_ROWEST=" CTIMEOPT_VAL(SQLITE_DEFAULT_ROWEST),
138 #endif
139 #ifdef SQLITE_DEFAULT_SECTOR_SIZE
140   "DEFAULT_SECTOR_SIZE=" CTIMEOPT_VAL(SQLITE_DEFAULT_SECTOR_SIZE),
141 #endif
142 #ifdef SQLITE_DEFAULT_SYNCHRONOUS
143   "DEFAULT_SYNCHRONOUS=" CTIMEOPT_VAL(SQLITE_DEFAULT_SYNCHRONOUS),
144 #endif
145 #ifdef SQLITE_DEFAULT_WAL_AUTOCHECKPOINT
146   "DEFAULT_WAL_AUTOCHECKPOINT=" CTIMEOPT_VAL(SQLITE_DEFAULT_WAL_AUTOCHECKPOINT),
147 #endif
148 #ifdef SQLITE_DEFAULT_WAL_SYNCHRONOUS
149   "DEFAULT_WAL_SYNCHRONOUS=" CTIMEOPT_VAL(SQLITE_DEFAULT_WAL_SYNCHRONOUS),
150 #endif
151 #ifdef SQLITE_DEFAULT_WORKER_THREADS
152   "DEFAULT_WORKER_THREADS=" CTIMEOPT_VAL(SQLITE_DEFAULT_WORKER_THREADS),
153 #endif
154 #if SQLITE_DIRECT_OVERFLOW_READ
155   "DIRECT_OVERFLOW_READ",
156 #endif
157 #if SQLITE_DISABLE_DIRSYNC
158   "DISABLE_DIRSYNC",
159 #endif
160 #if SQLITE_DISABLE_FTS3_UNICODE
161   "DISABLE_FTS3_UNICODE",
162 #endif
163 #if SQLITE_DISABLE_FTS4_DEFERRED
164   "DISABLE_FTS4_DEFERRED",
165 #endif
166 #if SQLITE_DISABLE_INTRINSIC
167   "DISABLE_INTRINSIC",
168 #endif
169 #if SQLITE_DISABLE_LFS
170   "DISABLE_LFS",
171 #endif
172 #if SQLITE_DISABLE_PAGECACHE_OVERFLOW_STATS
173   "DISABLE_PAGECACHE_OVERFLOW_STATS",
174 #endif
175 #if SQLITE_DISABLE_SKIPAHEAD_DISTINCT
176   "DISABLE_SKIPAHEAD_DISTINCT",
177 #endif
178 #ifdef SQLITE_ENABLE_8_3_NAMES
179   "ENABLE_8_3_NAMES=" CTIMEOPT_VAL(SQLITE_ENABLE_8_3_NAMES),
180 #endif
181 #if SQLITE_ENABLE_API_ARMOR
182   "ENABLE_API_ARMOR",
183 #endif
184 #if SQLITE_ENABLE_ATOMIC_WRITE
185   "ENABLE_ATOMIC_WRITE",
186 #endif
187 #if SQLITE_ENABLE_BATCH_ATOMIC_WRITE
188   "ENABLE_BATCH_ATOMIC_WRITE",
189 #endif
190 #if SQLITE_ENABLE_CEROD
191   "ENABLE_CEROD=" CTIMEOPT_VAL(SQLITE_ENABLE_CEROD),
192 #endif
193 #if SQLITE_ENABLE_COLUMN_METADATA
194   "ENABLE_COLUMN_METADATA",
195 #endif
196 #if SQLITE_ENABLE_COLUMN_USED_MASK
197   "ENABLE_COLUMN_USED_MASK",
198 #endif
199 #if SQLITE_ENABLE_COSTMULT
200   "ENABLE_COSTMULT",
201 #endif
202 #if SQLITE_ENABLE_CURSOR_HINTS
203   "ENABLE_CURSOR_HINTS",
204 #endif
205 #if SQLITE_ENABLE_DBSTAT_VTAB
206   "ENABLE_DBSTAT_VTAB",
207 #endif
208 #if SQLITE_ENABLE_EXPENSIVE_ASSERT
209   "ENABLE_EXPENSIVE_ASSERT",
210 #endif
211 #if SQLITE_ENABLE_FTS1
212   "ENABLE_FTS1",
213 #endif
214 #if SQLITE_ENABLE_FTS2
215   "ENABLE_FTS2",
216 #endif
217 #if SQLITE_ENABLE_FTS3
218   "ENABLE_FTS3",
219 #endif
220 #if SQLITE_ENABLE_FTS3_PARENTHESIS
221   "ENABLE_FTS3_PARENTHESIS",
222 #endif
223 #if SQLITE_ENABLE_FTS3_TOKENIZER
224   "ENABLE_FTS3_TOKENIZER",
225 #endif
226 #if SQLITE_ENABLE_FTS4
227   "ENABLE_FTS4",
228 #endif
229 #if SQLITE_ENABLE_FTS5
230   "ENABLE_FTS5",
231 #endif
232 #if SQLITE_ENABLE_HIDDEN_COLUMNS
233   "ENABLE_HIDDEN_COLUMNS",
234 #endif
235 #if SQLITE_ENABLE_ICU
236   "ENABLE_ICU",
237 #endif
238 #if SQLITE_ENABLE_IOTRACE
239   "ENABLE_IOTRACE",
240 #endif
241 #if SQLITE_ENABLE_JSON1
242   "ENABLE_JSON1",
243 #endif
244 #if SQLITE_ENABLE_LOAD_EXTENSION
245   "ENABLE_LOAD_EXTENSION",
246 #endif
247 #ifdef SQLITE_ENABLE_LOCKING_STYLE
248   "ENABLE_LOCKING_STYLE=" CTIMEOPT_VAL(SQLITE_ENABLE_LOCKING_STYLE),
249 #endif
250 #if SQLITE_ENABLE_MEMORY_MANAGEMENT
251   "ENABLE_MEMORY_MANAGEMENT",
252 #endif
253 #if SQLITE_ENABLE_MEMSYS3
254   "ENABLE_MEMSYS3",
255 #endif
256 #if SQLITE_ENABLE_MEMSYS5
257   "ENABLE_MEMSYS5",
258 #endif
259 #if SQLITE_ENABLE_MULTIPLEX
260   "ENABLE_MULTIPLEX",
261 #endif
262 #if SQLITE_ENABLE_NULL_TRIM
263   "ENABLE_NULL_TRIM",
264 #endif
265 #if SQLITE_ENABLE_OVERSIZE_CELL_CHECK
266   "ENABLE_OVERSIZE_CELL_CHECK",
267 #endif
268 #if SQLITE_ENABLE_PREUPDATE_HOOK
269   "ENABLE_PREUPDATE_HOOK",
270 #endif
271 #if SQLITE_ENABLE_QPSG
272   "ENABLE_QPSG",
273 #endif
274 #if SQLITE_ENABLE_RBU
275   "ENABLE_RBU",
276 #endif
277 #if SQLITE_ENABLE_RTREE
278   "ENABLE_RTREE",
279 #endif
280 #if SQLITE_ENABLE_SELECTTRACE
281   "ENABLE_SELECTTRACE",
282 #endif
283 #if SQLITE_ENABLE_SESSION
284   "ENABLE_SESSION",
285 #endif
286 #if SQLITE_ENABLE_SNAPSHOT
287   "ENABLE_SNAPSHOT",
288 #endif
289 #if SQLITE_ENABLE_SORTER_REFERENCES
290   "ENABLE_SORTER_REFERENCES",
291 #endif
292 #if SQLITE_ENABLE_SQLLOG
293   "ENABLE_SQLLOG",
294 #endif
295 #if defined(SQLITE_ENABLE_STAT4)
296   "ENABLE_STAT4",
297 #elif defined(SQLITE_ENABLE_STAT3)
298   "ENABLE_STAT3",
299 #endif
300 #if SQLITE_ENABLE_STMTVTAB
301   "ENABLE_STMTVTAB",
302 #endif
303 #if SQLITE_ENABLE_STMT_SCANSTATUS
304   "ENABLE_STMT_SCANSTATUS",
305 #endif
306 #if SQLITE_ENABLE_UNKNOWN_SQL_FUNCTION
307   "ENABLE_UNKNOWN_SQL_FUNCTION",
308 #endif
309 #if SQLITE_ENABLE_UNLOCK_NOTIFY
310   "ENABLE_UNLOCK_NOTIFY",
311 #endif
312 #if SQLITE_ENABLE_UPDATE_DELETE_LIMIT
313   "ENABLE_UPDATE_DELETE_LIMIT",
314 #endif
315 #if SQLITE_ENABLE_URI_00_ERROR
316   "ENABLE_URI_00_ERROR",
317 #endif
318 #if SQLITE_ENABLE_VFSTRACE
319   "ENABLE_VFSTRACE",
320 #endif
321 #if SQLITE_ENABLE_WHERETRACE
322   "ENABLE_WHERETRACE",
323 #endif
324 #if SQLITE_ENABLE_ZIPVFS
325   "ENABLE_ZIPVFS",
326 #endif
327 #if SQLITE_EXPLAIN_ESTIMATED_ROWS
328   "EXPLAIN_ESTIMATED_ROWS",
329 #endif
330 #if SQLITE_EXTRA_IFNULLROW
331   "EXTRA_IFNULLROW",
332 #endif
333 #ifdef SQLITE_EXTRA_INIT
334   "EXTRA_INIT=" CTIMEOPT_VAL(SQLITE_EXTRA_INIT),
335 #endif
336 #ifdef SQLITE_EXTRA_SHUTDOWN
337   "EXTRA_SHUTDOWN=" CTIMEOPT_VAL(SQLITE_EXTRA_SHUTDOWN),
338 #endif
339 #ifdef SQLITE_FTS3_MAX_EXPR_DEPTH
340   "FTS3_MAX_EXPR_DEPTH=" CTIMEOPT_VAL(SQLITE_FTS3_MAX_EXPR_DEPTH),
341 #endif
342 #if SQLITE_FTS5_ENABLE_TEST_MI
343   "FTS5_ENABLE_TEST_MI",
344 #endif
345 #if SQLITE_FTS5_NO_WITHOUT_ROWID
346   "FTS5_NO_WITHOUT_ROWID",
347 #endif
348 #if SQLITE_HAS_CODEC
349   "HAS_CODEC",
350 #endif
351 #if HAVE_ISNAN || SQLITE_HAVE_ISNAN
352   "HAVE_ISNAN",
353 #endif
354 #if SQLITE_HOMEGROWN_RECURSIVE_MUTEX
355   "HOMEGROWN_RECURSIVE_MUTEX",
356 #endif
357 #if SQLITE_IGNORE_AFP_LOCK_ERRORS
358   "IGNORE_AFP_LOCK_ERRORS",
359 #endif
360 #if SQLITE_IGNORE_FLOCK_LOCK_ERRORS
361   "IGNORE_FLOCK_LOCK_ERRORS",
362 #endif
363 #if SQLITE_INLINE_MEMCPY
364   "INLINE_MEMCPY",
365 #endif
366 #if SQLITE_INT64_TYPE
367   "INT64_TYPE",
368 #endif
369 #ifdef SQLITE_INTEGRITY_CHECK_ERROR_MAX
370   "INTEGRITY_CHECK_ERROR_MAX=" CTIMEOPT_VAL(SQLITE_INTEGRITY_CHECK_ERROR_MAX),
371 #endif
372 #if SQLITE_LIKE_DOESNT_MATCH_BLOBS
373   "LIKE_DOESNT_MATCH_BLOBS",
374 #endif
375 #if SQLITE_LOCK_TRACE
376   "LOCK_TRACE",
377 #endif
378 #if SQLITE_LOG_CACHE_SPILL
379   "LOG_CACHE_SPILL",
380 #endif
381 #ifdef SQLITE_MALLOC_SOFT_LIMIT
382   "MALLOC_SOFT_LIMIT=" CTIMEOPT_VAL(SQLITE_MALLOC_SOFT_LIMIT),
383 #endif
384 #ifdef SQLITE_MAX_ATTACHED
385   "MAX_ATTACHED=" CTIMEOPT_VAL(SQLITE_MAX_ATTACHED),
386 #endif
387 #ifdef SQLITE_MAX_COLUMN
388   "MAX_COLUMN=" CTIMEOPT_VAL(SQLITE_MAX_COLUMN),
389 #endif
390 #ifdef SQLITE_MAX_COMPOUND_SELECT
391   "MAX_COMPOUND_SELECT=" CTIMEOPT_VAL(SQLITE_MAX_COMPOUND_SELECT),
392 #endif
393 #ifdef SQLITE_MAX_DEFAULT_PAGE_SIZE
394   "MAX_DEFAULT_PAGE_SIZE=" CTIMEOPT_VAL(SQLITE_MAX_DEFAULT_PAGE_SIZE),
395 #endif
396 #ifdef SQLITE_MAX_EXPR_DEPTH
397   "MAX_EXPR_DEPTH=" CTIMEOPT_VAL(SQLITE_MAX_EXPR_DEPTH),
398 #endif
399 #ifdef SQLITE_MAX_FUNCTION_ARG
400   "MAX_FUNCTION_ARG=" CTIMEOPT_VAL(SQLITE_MAX_FUNCTION_ARG),
401 #endif
402 #ifdef SQLITE_MAX_LENGTH
403   "MAX_LENGTH=" CTIMEOPT_VAL(SQLITE_MAX_LENGTH),
404 #endif
405 #ifdef SQLITE_MAX_LIKE_PATTERN_LENGTH
406   "MAX_LIKE_PATTERN_LENGTH=" CTIMEOPT_VAL(SQLITE_MAX_LIKE_PATTERN_LENGTH),
407 #endif
408 #ifdef SQLITE_MAX_MEMORY
409   "MAX_MEMORY=" CTIMEOPT_VAL(SQLITE_MAX_MEMORY),
410 #endif
411 #ifdef SQLITE_MAX_MMAP_SIZE
412   "MAX_MMAP_SIZE=" CTIMEOPT_VAL(SQLITE_MAX_MMAP_SIZE),
413 #endif
414 #ifdef SQLITE_MAX_MMAP_SIZE_
415   "MAX_MMAP_SIZE_=" CTIMEOPT_VAL(SQLITE_MAX_MMAP_SIZE_),
416 #endif
417 #ifdef SQLITE_MAX_PAGE_COUNT
418   "MAX_PAGE_COUNT=" CTIMEOPT_VAL(SQLITE_MAX_PAGE_COUNT),
419 #endif
420 #ifdef SQLITE_MAX_PAGE_SIZE
421   "MAX_PAGE_SIZE=" CTIMEOPT_VAL(SQLITE_MAX_PAGE_SIZE),
422 #endif
423 #ifdef SQLITE_MAX_SCHEMA_RETRY
424   "MAX_SCHEMA_RETRY=" CTIMEOPT_VAL(SQLITE_MAX_SCHEMA_RETRY),
425 #endif
426 #ifdef SQLITE_MAX_SQL_LENGTH
427   "MAX_SQL_LENGTH=" CTIMEOPT_VAL(SQLITE_MAX_SQL_LENGTH),
428 #endif
429 #ifdef SQLITE_MAX_TRIGGER_DEPTH
430   "MAX_TRIGGER_DEPTH=" CTIMEOPT_VAL(SQLITE_MAX_TRIGGER_DEPTH),
431 #endif
432 #ifdef SQLITE_MAX_VARIABLE_NUMBER
433   "MAX_VARIABLE_NUMBER=" CTIMEOPT_VAL(SQLITE_MAX_VARIABLE_NUMBER),
434 #endif
435 #ifdef SQLITE_MAX_VDBE_OP
436   "MAX_VDBE_OP=" CTIMEOPT_VAL(SQLITE_MAX_VDBE_OP),
437 #endif
438 #ifdef SQLITE_MAX_WORKER_THREADS
439   "MAX_WORKER_THREADS=" CTIMEOPT_VAL(SQLITE_MAX_WORKER_THREADS),
440 #endif
441 #if SQLITE_MEMDEBUG
442   "MEMDEBUG",
443 #endif
444 #if SQLITE_MIXED_ENDIAN_64BIT_FLOAT
445   "MIXED_ENDIAN_64BIT_FLOAT",
446 #endif
447 #if SQLITE_MMAP_READWRITE
448   "MMAP_READWRITE",
449 #endif
450 #if SQLITE_MUTEX_NOOP
451   "MUTEX_NOOP",
452 #endif
453 #if SQLITE_MUTEX_NREF
454   "MUTEX_NREF",
455 #endif
456 #if SQLITE_MUTEX_OMIT
457   "MUTEX_OMIT",
458 #endif
459 #if SQLITE_MUTEX_PTHREADS
460   "MUTEX_PTHREADS",
461 #endif
462 #if SQLITE_MUTEX_W32
463   "MUTEX_W32",
464 #endif
465 #if SQLITE_NEED_ERR_NAME
466   "NEED_ERR_NAME",
467 #endif
468 #if SQLITE_NOINLINE
469   "NOINLINE",
470 #endif
471 #if SQLITE_NO_SYNC
472   "NO_SYNC",
473 #endif
474 #if SQLITE_OMIT_ALTERTABLE
475   "OMIT_ALTERTABLE",
476 #endif
477 #if SQLITE_OMIT_ANALYZE
478   "OMIT_ANALYZE",
479 #endif
480 #if SQLITE_OMIT_ATTACH
481   "OMIT_ATTACH",
482 #endif
483 #if SQLITE_OMIT_AUTHORIZATION
484   "OMIT_AUTHORIZATION",
485 #endif
486 #if SQLITE_OMIT_AUTOINCREMENT
487   "OMIT_AUTOINCREMENT",
488 #endif
489 #if SQLITE_OMIT_AUTOINIT
490   "OMIT_AUTOINIT",
491 #endif
492 #if SQLITE_OMIT_AUTOMATIC_INDEX
493   "OMIT_AUTOMATIC_INDEX",
494 #endif
495 #if SQLITE_OMIT_AUTORESET
496   "OMIT_AUTORESET",
497 #endif
498 #if SQLITE_OMIT_AUTOVACUUM
499   "OMIT_AUTOVACUUM",
500 #endif
501 #if SQLITE_OMIT_BETWEEN_OPTIMIZATION
502   "OMIT_BETWEEN_OPTIMIZATION",
503 #endif
504 #if SQLITE_OMIT_BLOB_LITERAL
505   "OMIT_BLOB_LITERAL",
506 #endif
507 #if SQLITE_OMIT_BTREECOUNT
508   "OMIT_BTREECOUNT",
509 #endif
510 #if SQLITE_OMIT_CAST
511   "OMIT_CAST",
512 #endif
513 #if SQLITE_OMIT_CHECK
514   "OMIT_CHECK",
515 #endif
516 #if SQLITE_OMIT_COMPLETE
517   "OMIT_COMPLETE",
518 #endif
519 #if SQLITE_OMIT_COMPOUND_SELECT
520   "OMIT_COMPOUND_SELECT",
521 #endif
522 #if SQLITE_OMIT_CONFLICT_CLAUSE
523   "OMIT_CONFLICT_CLAUSE",
524 #endif
525 #if SQLITE_OMIT_CTE
526   "OMIT_CTE",
527 #endif
528 #if SQLITE_OMIT_DATETIME_FUNCS
529   "OMIT_DATETIME_FUNCS",
530 #endif
531 #if SQLITE_OMIT_DECLTYPE
532   "OMIT_DECLTYPE",
533 #endif
534 #if SQLITE_OMIT_DEPRECATED
535   "OMIT_DEPRECATED",
536 #endif
537 #if SQLITE_OMIT_DISKIO
538   "OMIT_DISKIO",
539 #endif
540 #if SQLITE_OMIT_EXPLAIN
541   "OMIT_EXPLAIN",
542 #endif
543 #if SQLITE_OMIT_FLAG_PRAGMAS
544   "OMIT_FLAG_PRAGMAS",
545 #endif
546 #if SQLITE_OMIT_FLOATING_POINT
547   "OMIT_FLOATING_POINT",
548 #endif
549 #if SQLITE_OMIT_FOREIGN_KEY
550   "OMIT_FOREIGN_KEY",
551 #endif
552 #if SQLITE_OMIT_GET_TABLE
553   "OMIT_GET_TABLE",
554 #endif
555 #if SQLITE_OMIT_HEX_INTEGER
556   "OMIT_HEX_INTEGER",
557 #endif
558 #if SQLITE_OMIT_INCRBLOB
559   "OMIT_INCRBLOB",
560 #endif
561 #if SQLITE_OMIT_INTEGRITY_CHECK
562   "OMIT_INTEGRITY_CHECK",
563 #endif
564 #if SQLITE_OMIT_LIKE_OPTIMIZATION
565   "OMIT_LIKE_OPTIMIZATION",
566 #endif
567 #if SQLITE_OMIT_LOAD_EXTENSION
568   "OMIT_LOAD_EXTENSION",
569 #endif
570 #if SQLITE_OMIT_LOCALTIME
571   "OMIT_LOCALTIME",
572 #endif
573 #if SQLITE_OMIT_LOOKASIDE
574   "OMIT_LOOKASIDE",
575 #endif
576 #if SQLITE_OMIT_MEMORYDB
577   "OMIT_MEMORYDB",
578 #endif
579 #if SQLITE_OMIT_OR_OPTIMIZATION
580   "OMIT_OR_OPTIMIZATION",
581 #endif
582 #if SQLITE_OMIT_PAGER_PRAGMAS
583   "OMIT_PAGER_PRAGMAS",
584 #endif
585 #if SQLITE_OMIT_PARSER_TRACE
586   "OMIT_PARSER_TRACE",
587 #endif
588 #if SQLITE_OMIT_POPEN
589   "OMIT_POPEN",
590 #endif
591 #if SQLITE_OMIT_PRAGMA
592   "OMIT_PRAGMA",
593 #endif
594 #if SQLITE_OMIT_PROGRESS_CALLBACK
595   "OMIT_PROGRESS_CALLBACK",
596 #endif
597 #if SQLITE_OMIT_QUICKBALANCE
598   "OMIT_QUICKBALANCE",
599 #endif
600 #if SQLITE_OMIT_REINDEX
601   "OMIT_REINDEX",
602 #endif
603 #if SQLITE_OMIT_SCHEMA_PRAGMAS
604   "OMIT_SCHEMA_PRAGMAS",
605 #endif
606 #if SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS
607   "OMIT_SCHEMA_VERSION_PRAGMAS",
608 #endif
609 #if SQLITE_OMIT_SHARED_CACHE
610   "OMIT_SHARED_CACHE",
611 #endif
612 #if SQLITE_OMIT_SHUTDOWN_DIRECTORIES
613   "OMIT_SHUTDOWN_DIRECTORIES",
614 #endif
615 #if SQLITE_OMIT_SUBQUERY
616   "OMIT_SUBQUERY",
617 #endif
618 #if SQLITE_OMIT_TCL_VARIABLE
619   "OMIT_TCL_VARIABLE",
620 #endif
621 #if SQLITE_OMIT_TEMPDB
622   "OMIT_TEMPDB",
623 #endif
624 #if SQLITE_OMIT_TEST_CONTROL
625   "OMIT_TEST_CONTROL",
626 #endif
627 #if SQLITE_OMIT_TRACE
628   "OMIT_TRACE",
629 #endif
630 #if SQLITE_OMIT_TRIGGER
631   "OMIT_TRIGGER",
632 #endif
633 #if SQLITE_OMIT_TRUNCATE_OPTIMIZATION
634   "OMIT_TRUNCATE_OPTIMIZATION",
635 #endif
636 #if SQLITE_OMIT_UTF16
637   "OMIT_UTF16",
638 #endif
639 #if SQLITE_OMIT_VACUUM
640   "OMIT_VACUUM",
641 #endif
642 #if SQLITE_OMIT_VIEW
643   "OMIT_VIEW",
644 #endif
645 #if SQLITE_OMIT_VIRTUALTABLE
646   "OMIT_VIRTUALTABLE",
647 #endif
648 #if SQLITE_OMIT_WAL
649   "OMIT_WAL",
650 #endif
651 #if SQLITE_OMIT_WSD
652   "OMIT_WSD",
653 #endif
654 #if SQLITE_OMIT_XFER_OPT
655   "OMIT_XFER_OPT",
656 #endif
657 #if SQLITE_PCACHE_SEPARATE_HEADER
658   "PCACHE_SEPARATE_HEADER",
659 #endif
660 #if SQLITE_PERFORMANCE_TRACE
661   "PERFORMANCE_TRACE",
662 #endif
663 #if SQLITE_POWERSAFE_OVERWRITE
664   "POWERSAFE_OVERWRITE",
665 #endif
666 #if SQLITE_PREFER_PROXY_LOCKING
667   "PREFER_PROXY_LOCKING",
668 #endif
669 #if SQLITE_PROXY_DEBUG
670   "PROXY_DEBUG",
671 #endif
672 #if SQLITE_REVERSE_UNORDERED_SELECTS
673   "REVERSE_UNORDERED_SELECTS",
674 #endif
675 #if SQLITE_RTREE_INT_ONLY
676   "RTREE_INT_ONLY",
677 #endif
678 #if SQLITE_SECURE_DELETE
679   "SECURE_DELETE",
680 #endif
681 #if SQLITE_SMALL_STACK
682   "SMALL_STACK",
683 #endif
684 #ifdef SQLITE_SORTER_PMASZ
685   "SORTER_PMASZ=" CTIMEOPT_VAL(SQLITE_SORTER_PMASZ),
686 #endif
687 #if SQLITE_SOUNDEX
688   "SOUNDEX",
689 #endif
690 #ifdef SQLITE_STAT4_SAMPLES
691   "STAT4_SAMPLES=" CTIMEOPT_VAL(SQLITE_STAT4_SAMPLES),
692 #endif
693 #ifdef SQLITE_STMTJRNL_SPILL
694   "STMTJRNL_SPILL=" CTIMEOPT_VAL(SQLITE_STMTJRNL_SPILL),
695 #endif
696 #if SQLITE_SUBSTR_COMPATIBILITY
697   "SUBSTR_COMPATIBILITY",
698 #endif
699 #if SQLITE_SYSTEM_MALLOC
700   "SYSTEM_MALLOC",
701 #endif
702 #if SQLITE_TCL
703   "TCL",
704 #endif
705 #ifdef SQLITE_TEMP_STORE
706   "TEMP_STORE=" CTIMEOPT_VAL(SQLITE_TEMP_STORE),
707 #endif
708 #if SQLITE_TEST
709   "TEST",
710 #endif
711 #if defined(SQLITE_THREADSAFE)
712   "THREADSAFE=" CTIMEOPT_VAL(SQLITE_THREADSAFE),
713 #elif defined(THREADSAFE)
714   "THREADSAFE=" CTIMEOPT_VAL(THREADSAFE),
715 #else
716   "THREADSAFE=1",
717 #endif
718 #if SQLITE_UNLINK_AFTER_CLOSE
719   "UNLINK_AFTER_CLOSE",
720 #endif
721 #if SQLITE_UNTESTABLE
722   "UNTESTABLE",
723 #endif
724 #if SQLITE_USER_AUTHENTICATION
725   "USER_AUTHENTICATION",
726 #endif
727 #if SQLITE_USE_ALLOCA
728   "USE_ALLOCA",
729 #endif
730 #if SQLITE_USE_FCNTL_TRACE
731   "USE_FCNTL_TRACE",
732 #endif
733 #if SQLITE_USE_URI
734   "USE_URI",
735 #endif
736 #if SQLITE_VDBE_COVERAGE
737   "VDBE_COVERAGE",
738 #endif
739 #if SQLITE_WIN32_MALLOC
740   "WIN32_MALLOC",
741 #endif
742 #if SQLITE_ZERO_MALLOC
743   "ZERO_MALLOC",
744 #endif
745 /*
746 ** END CODE GENERATED BY tool/mkctime.tcl
747 */
748 };
749 
750 const char **sqlite3CompileOptions(int *pnOpt){
751   *pnOpt = sizeof(sqlite3azCompileOpt) / sizeof(sqlite3azCompileOpt[0]);
752   return (const char**)sqlite3azCompileOpt;
753 }
754 
755 #endif /* SQLITE_OMIT_COMPILEOPTION_DIAGS */
756