000001  /*
000002  ** 2010 February 23
000003  **
000004  ** The author disclaims copyright to this source code.  In place of
000005  ** a legal notice, here is a blessing:
000006  **
000007  **    May you do good and not evil.
000008  **    May you find forgiveness for yourself and forgive others.
000009  **    May you share freely, never taking more than you give.
000010  **
000011  *************************************************************************
000012  **
000013  ** This file implements routines used to report what compile-time options
000014  ** SQLite was built with.
000015  */
000016  
000017  #ifndef SQLITE_OMIT_COMPILEOPTION_DIAGS /* IMP: R-16824-07538 */
000018  
000019  /*
000020  ** Include the configuration header output by 'configure' if we're using the
000021  ** autoconf-based build
000022  */
000023  #if defined(_HAVE_SQLITE_CONFIG_H) && !defined(SQLITECONFIG_H)
000024  #include "config.h"
000025  #define SQLITECONFIG_H 1
000026  #endif
000027  
000028  /* These macros are provided to "stringify" the value of the define
000029  ** for those options in which the value is meaningful. */
000030  #define CTIMEOPT_VAL_(opt) #opt
000031  #define CTIMEOPT_VAL(opt) CTIMEOPT_VAL_(opt)
000032  
000033  /* Like CTIMEOPT_VAL, but especially for SQLITE_DEFAULT_LOOKASIDE. This
000034  ** option requires a separate macro because legal values contain a single
000035  ** comma. e.g. (-DSQLITE_DEFAULT_LOOKASIDE="100,100") */
000036  #define CTIMEOPT_VAL2_(opt1,opt2) #opt1 "," #opt2
000037  #define CTIMEOPT_VAL2(opt) CTIMEOPT_VAL2_(opt)
000038  
000039  /*
000040  ** An array of names of all compile-time options.  This array should 
000041  ** be sorted A-Z.
000042  **
000043  ** This array looks large, but in a typical installation actually uses
000044  ** only a handful of compile-time options, so most times this array is usually
000045  ** rather short and uses little memory space.
000046  */
000047  static const char * const sqlite3azCompileOpt[] = {
000048  
000049  /* 
000050  ** BEGIN CODE GENERATED BY tool/mkctime.tcl 
000051  */
000052  #if SQLITE_32BIT_ROWID
000053    "32BIT_ROWID",
000054  #endif
000055  #if SQLITE_4_BYTE_ALIGNED_MALLOC
000056    "4_BYTE_ALIGNED_MALLOC",
000057  #endif
000058  #if SQLITE_64BIT_STATS
000059    "64BIT_STATS",
000060  #endif
000061  #if SQLITE_ALLOW_COVERING_INDEX_SCAN
000062    "ALLOW_COVERING_INDEX_SCAN",
000063  #endif
000064  #if SQLITE_ALLOW_URI_AUTHORITY
000065    "ALLOW_URI_AUTHORITY",
000066  #endif
000067  #ifdef SQLITE_BITMASK_TYPE
000068    "BITMASK_TYPE=" CTIMEOPT_VAL(SQLITE_BITMASK_TYPE),
000069  #endif
000070  #if SQLITE_BUG_COMPATIBLE_20160819
000071    "BUG_COMPATIBLE_20160819",
000072  #endif
000073  #if SQLITE_CASE_SENSITIVE_LIKE
000074    "CASE_SENSITIVE_LIKE",
000075  #endif
000076  #if SQLITE_CHECK_PAGES
000077    "CHECK_PAGES",
000078  #endif
000079  #if defined(__clang__) && defined(__clang_major__)
000080    "COMPILER=clang-" CTIMEOPT_VAL(__clang_major__) "."
000081                      CTIMEOPT_VAL(__clang_minor__) "."
000082                      CTIMEOPT_VAL(__clang_patchlevel__),
000083  #elif defined(_MSC_VER)
000084    "COMPILER=msvc-" CTIMEOPT_VAL(_MSC_VER),
000085  #elif defined(__GNUC__) && defined(__VERSION__)
000086    "COMPILER=gcc-" __VERSION__,
000087  #endif
000088  #if SQLITE_COVERAGE_TEST
000089    "COVERAGE_TEST",
000090  #endif
000091  #if SQLITE_DEBUG
000092    "DEBUG",
000093  #endif
000094  #if SQLITE_DEFAULT_AUTOMATIC_INDEX
000095    "DEFAULT_AUTOMATIC_INDEX",
000096  #endif
000097  #if SQLITE_DEFAULT_AUTOVACUUM
000098    "DEFAULT_AUTOVACUUM",
000099  #endif
000100  #ifdef SQLITE_DEFAULT_CACHE_SIZE
000101    "DEFAULT_CACHE_SIZE=" CTIMEOPT_VAL(SQLITE_DEFAULT_CACHE_SIZE),
000102  #endif
000103  #if SQLITE_DEFAULT_CKPTFULLFSYNC
000104    "DEFAULT_CKPTFULLFSYNC",
000105  #endif
000106  #ifdef SQLITE_DEFAULT_FILE_FORMAT
000107    "DEFAULT_FILE_FORMAT=" CTIMEOPT_VAL(SQLITE_DEFAULT_FILE_FORMAT),
000108  #endif
000109  #ifdef SQLITE_DEFAULT_FILE_PERMISSIONS
000110    "DEFAULT_FILE_PERMISSIONS=" CTIMEOPT_VAL(SQLITE_DEFAULT_FILE_PERMISSIONS),
000111  #endif
000112  #if SQLITE_DEFAULT_FOREIGN_KEYS
000113    "DEFAULT_FOREIGN_KEYS",
000114  #endif
000115  #ifdef SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT
000116    "DEFAULT_JOURNAL_SIZE_LIMIT=" CTIMEOPT_VAL(SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT),
000117  #endif
000118  #ifdef SQLITE_DEFAULT_LOCKING_MODE
000119    "DEFAULT_LOCKING_MODE=" CTIMEOPT_VAL(SQLITE_DEFAULT_LOCKING_MODE),
000120  #endif
000121  #ifdef SQLITE_DEFAULT_LOOKASIDE
000122    "DEFAULT_LOOKASIDE=" CTIMEOPT_VAL2(SQLITE_DEFAULT_LOOKASIDE),
000123  #endif
000124  #if SQLITE_DEFAULT_MEMSTATUS
000125    "DEFAULT_MEMSTATUS",
000126  #endif
000127  #ifdef SQLITE_DEFAULT_MMAP_SIZE
000128    "DEFAULT_MMAP_SIZE=" CTIMEOPT_VAL(SQLITE_DEFAULT_MMAP_SIZE),
000129  #endif
000130  #ifdef SQLITE_DEFAULT_PAGE_SIZE
000131    "DEFAULT_PAGE_SIZE=" CTIMEOPT_VAL(SQLITE_DEFAULT_PAGE_SIZE),
000132  #endif
000133  #ifdef SQLITE_DEFAULT_PCACHE_INITSZ
000134    "DEFAULT_PCACHE_INITSZ=" CTIMEOPT_VAL(SQLITE_DEFAULT_PCACHE_INITSZ),
000135  #endif
000136  #ifdef SQLITE_DEFAULT_PROXYDIR_PERMISSIONS
000137    "DEFAULT_PROXYDIR_PERMISSIONS=" CTIMEOPT_VAL(SQLITE_DEFAULT_PROXYDIR_PERMISSIONS),
000138  #endif
000139  #if SQLITE_DEFAULT_RECURSIVE_TRIGGERS
000140    "DEFAULT_RECURSIVE_TRIGGERS",
000141  #endif
000142  #ifdef SQLITE_DEFAULT_ROWEST
000143    "DEFAULT_ROWEST=" CTIMEOPT_VAL(SQLITE_DEFAULT_ROWEST),
000144  #endif
000145  #ifdef SQLITE_DEFAULT_SECTOR_SIZE
000146    "DEFAULT_SECTOR_SIZE=" CTIMEOPT_VAL(SQLITE_DEFAULT_SECTOR_SIZE),
000147  #endif
000148  #ifdef SQLITE_DEFAULT_SYNCHRONOUS
000149    "DEFAULT_SYNCHRONOUS=" CTIMEOPT_VAL(SQLITE_DEFAULT_SYNCHRONOUS),
000150  #endif
000151  #ifdef SQLITE_DEFAULT_WAL_AUTOCHECKPOINT
000152    "DEFAULT_WAL_AUTOCHECKPOINT=" CTIMEOPT_VAL(SQLITE_DEFAULT_WAL_AUTOCHECKPOINT),
000153  #endif
000154  #ifdef SQLITE_DEFAULT_WAL_SYNCHRONOUS
000155    "DEFAULT_WAL_SYNCHRONOUS=" CTIMEOPT_VAL(SQLITE_DEFAULT_WAL_SYNCHRONOUS),
000156  #endif
000157  #ifdef SQLITE_DEFAULT_WORKER_THREADS
000158    "DEFAULT_WORKER_THREADS=" CTIMEOPT_VAL(SQLITE_DEFAULT_WORKER_THREADS),
000159  #endif
000160  #if SQLITE_DIRECT_OVERFLOW_READ
000161    "DIRECT_OVERFLOW_READ",
000162  #endif
000163  #if SQLITE_DISABLE_DIRSYNC
000164    "DISABLE_DIRSYNC",
000165  #endif
000166  #if SQLITE_DISABLE_FTS3_UNICODE
000167    "DISABLE_FTS3_UNICODE",
000168  #endif
000169  #if SQLITE_DISABLE_FTS4_DEFERRED
000170    "DISABLE_FTS4_DEFERRED",
000171  #endif
000172  #if SQLITE_DISABLE_INTRINSIC
000173    "DISABLE_INTRINSIC",
000174  #endif
000175  #if SQLITE_DISABLE_LFS
000176    "DISABLE_LFS",
000177  #endif
000178  #if SQLITE_DISABLE_PAGECACHE_OVERFLOW_STATS
000179    "DISABLE_PAGECACHE_OVERFLOW_STATS",
000180  #endif
000181  #if SQLITE_DISABLE_SKIPAHEAD_DISTINCT
000182    "DISABLE_SKIPAHEAD_DISTINCT",
000183  #endif
000184  #ifdef SQLITE_ENABLE_8_3_NAMES
000185    "ENABLE_8_3_NAMES=" CTIMEOPT_VAL(SQLITE_ENABLE_8_3_NAMES),
000186  #endif
000187  #if SQLITE_ENABLE_API_ARMOR
000188    "ENABLE_API_ARMOR",
000189  #endif
000190  #if SQLITE_ENABLE_ATOMIC_WRITE
000191    "ENABLE_ATOMIC_WRITE",
000192  #endif
000193  #if SQLITE_ENABLE_BATCH_ATOMIC_WRITE
000194    "ENABLE_BATCH_ATOMIC_WRITE",
000195  #endif
000196  #if SQLITE_ENABLE_CEROD
000197    "ENABLE_CEROD=" CTIMEOPT_VAL(SQLITE_ENABLE_CEROD),
000198  #endif
000199  #if SQLITE_ENABLE_COLUMN_METADATA
000200    "ENABLE_COLUMN_METADATA",
000201  #endif
000202  #if SQLITE_ENABLE_COLUMN_USED_MASK
000203    "ENABLE_COLUMN_USED_MASK",
000204  #endif
000205  #if SQLITE_ENABLE_COSTMULT
000206    "ENABLE_COSTMULT",
000207  #endif
000208  #if SQLITE_ENABLE_CURSOR_HINTS
000209    "ENABLE_CURSOR_HINTS",
000210  #endif
000211  #if SQLITE_ENABLE_DBSTAT_VTAB
000212    "ENABLE_DBSTAT_VTAB",
000213  #endif
000214  #if SQLITE_ENABLE_EXPENSIVE_ASSERT
000215    "ENABLE_EXPENSIVE_ASSERT",
000216  #endif
000217  #if SQLITE_ENABLE_FTS1
000218    "ENABLE_FTS1",
000219  #endif
000220  #if SQLITE_ENABLE_FTS2
000221    "ENABLE_FTS2",
000222  #endif
000223  #if SQLITE_ENABLE_FTS3
000224    "ENABLE_FTS3",
000225  #endif
000226  #if SQLITE_ENABLE_FTS3_PARENTHESIS
000227    "ENABLE_FTS3_PARENTHESIS",
000228  #endif
000229  #if SQLITE_ENABLE_FTS3_TOKENIZER
000230    "ENABLE_FTS3_TOKENIZER",
000231  #endif
000232  #if SQLITE_ENABLE_FTS4
000233    "ENABLE_FTS4",
000234  #endif
000235  #if SQLITE_ENABLE_FTS5
000236    "ENABLE_FTS5",
000237  #endif
000238  #if SQLITE_ENABLE_GEOPOLY
000239    "ENABLE_GEOPOLY",
000240  #endif
000241  #if SQLITE_ENABLE_HIDDEN_COLUMNS
000242    "ENABLE_HIDDEN_COLUMNS",
000243  #endif
000244  #if SQLITE_ENABLE_ICU
000245    "ENABLE_ICU",
000246  #endif
000247  #if SQLITE_ENABLE_IOTRACE
000248    "ENABLE_IOTRACE",
000249  #endif
000250  #if SQLITE_ENABLE_JSON1
000251    "ENABLE_JSON1",
000252  #endif
000253  #if SQLITE_ENABLE_LOAD_EXTENSION
000254    "ENABLE_LOAD_EXTENSION",
000255  #endif
000256  #ifdef SQLITE_ENABLE_LOCKING_STYLE
000257    "ENABLE_LOCKING_STYLE=" CTIMEOPT_VAL(SQLITE_ENABLE_LOCKING_STYLE),
000258  #endif
000259  #if SQLITE_ENABLE_MEMORY_MANAGEMENT
000260    "ENABLE_MEMORY_MANAGEMENT",
000261  #endif
000262  #if SQLITE_ENABLE_MEMSYS3
000263    "ENABLE_MEMSYS3",
000264  #endif
000265  #if SQLITE_ENABLE_MEMSYS5
000266    "ENABLE_MEMSYS5",
000267  #endif
000268  #if SQLITE_ENABLE_MULTIPLEX
000269    "ENABLE_MULTIPLEX",
000270  #endif
000271  #if SQLITE_ENABLE_NORMALIZE
000272    "ENABLE_NORMALIZE",
000273  #endif
000274  #if SQLITE_ENABLE_NULL_TRIM
000275    "ENABLE_NULL_TRIM",
000276  #endif
000277  #if SQLITE_ENABLE_OVERSIZE_CELL_CHECK
000278    "ENABLE_OVERSIZE_CELL_CHECK",
000279  #endif
000280  #if SQLITE_ENABLE_PREUPDATE_HOOK
000281    "ENABLE_PREUPDATE_HOOK",
000282  #endif
000283  #if SQLITE_ENABLE_QPSG
000284    "ENABLE_QPSG",
000285  #endif
000286  #if SQLITE_ENABLE_RBU
000287    "ENABLE_RBU",
000288  #endif
000289  #if SQLITE_ENABLE_RTREE
000290    "ENABLE_RTREE",
000291  #endif
000292  #if SQLITE_ENABLE_SELECTTRACE
000293    "ENABLE_SELECTTRACE",
000294  #endif
000295  #if SQLITE_ENABLE_SESSION
000296    "ENABLE_SESSION",
000297  #endif
000298  #if SQLITE_ENABLE_SNAPSHOT
000299    "ENABLE_SNAPSHOT",
000300  #endif
000301  #if SQLITE_ENABLE_SORTER_REFERENCES
000302    "ENABLE_SORTER_REFERENCES",
000303  #endif
000304  #if SQLITE_ENABLE_SQLLOG
000305    "ENABLE_SQLLOG",
000306  #endif
000307  #if defined(SQLITE_ENABLE_STAT4)
000308    "ENABLE_STAT4",
000309  #endif
000310  #if SQLITE_ENABLE_STMTVTAB
000311    "ENABLE_STMTVTAB",
000312  #endif
000313  #if SQLITE_ENABLE_STMT_SCANSTATUS
000314    "ENABLE_STMT_SCANSTATUS",
000315  #endif
000316  #if SQLITE_ENABLE_UNKNOWN_SQL_FUNCTION
000317    "ENABLE_UNKNOWN_SQL_FUNCTION",
000318  #endif
000319  #if SQLITE_ENABLE_UNLOCK_NOTIFY
000320    "ENABLE_UNLOCK_NOTIFY",
000321  #endif
000322  #if SQLITE_ENABLE_UPDATE_DELETE_LIMIT
000323    "ENABLE_UPDATE_DELETE_LIMIT",
000324  #endif
000325  #if SQLITE_ENABLE_URI_00_ERROR
000326    "ENABLE_URI_00_ERROR",
000327  #endif
000328  #if SQLITE_ENABLE_VFSTRACE
000329    "ENABLE_VFSTRACE",
000330  #endif
000331  #if SQLITE_ENABLE_WHERETRACE
000332    "ENABLE_WHERETRACE",
000333  #endif
000334  #if SQLITE_ENABLE_ZIPVFS
000335    "ENABLE_ZIPVFS",
000336  #endif
000337  #if SQLITE_EXPLAIN_ESTIMATED_ROWS
000338    "EXPLAIN_ESTIMATED_ROWS",
000339  #endif
000340  #if SQLITE_EXTRA_IFNULLROW
000341    "EXTRA_IFNULLROW",
000342  #endif
000343  #ifdef SQLITE_EXTRA_INIT
000344    "EXTRA_INIT=" CTIMEOPT_VAL(SQLITE_EXTRA_INIT),
000345  #endif
000346  #ifdef SQLITE_EXTRA_SHUTDOWN
000347    "EXTRA_SHUTDOWN=" CTIMEOPT_VAL(SQLITE_EXTRA_SHUTDOWN),
000348  #endif
000349  #ifdef SQLITE_FTS3_MAX_EXPR_DEPTH
000350    "FTS3_MAX_EXPR_DEPTH=" CTIMEOPT_VAL(SQLITE_FTS3_MAX_EXPR_DEPTH),
000351  #endif
000352  #if SQLITE_FTS5_ENABLE_TEST_MI
000353    "FTS5_ENABLE_TEST_MI",
000354  #endif
000355  #if SQLITE_FTS5_NO_WITHOUT_ROWID
000356    "FTS5_NO_WITHOUT_ROWID",
000357  #endif
000358  #if SQLITE_HAS_CODEC
000359    "HAS_CODEC",
000360  #endif
000361  #if HAVE_ISNAN || SQLITE_HAVE_ISNAN
000362    "HAVE_ISNAN",
000363  #endif
000364  #if SQLITE_HOMEGROWN_RECURSIVE_MUTEX
000365    "HOMEGROWN_RECURSIVE_MUTEX",
000366  #endif
000367  #if SQLITE_IGNORE_AFP_LOCK_ERRORS
000368    "IGNORE_AFP_LOCK_ERRORS",
000369  #endif
000370  #if SQLITE_IGNORE_FLOCK_LOCK_ERRORS
000371    "IGNORE_FLOCK_LOCK_ERRORS",
000372  #endif
000373  #if SQLITE_INLINE_MEMCPY
000374    "INLINE_MEMCPY",
000375  #endif
000376  #if SQLITE_INT64_TYPE
000377    "INT64_TYPE",
000378  #endif
000379  #ifdef SQLITE_INTEGRITY_CHECK_ERROR_MAX
000380    "INTEGRITY_CHECK_ERROR_MAX=" CTIMEOPT_VAL(SQLITE_INTEGRITY_CHECK_ERROR_MAX),
000381  #endif
000382  #if SQLITE_LIKE_DOESNT_MATCH_BLOBS
000383    "LIKE_DOESNT_MATCH_BLOBS",
000384  #endif
000385  #if SQLITE_LOCK_TRACE
000386    "LOCK_TRACE",
000387  #endif
000388  #if SQLITE_LOG_CACHE_SPILL
000389    "LOG_CACHE_SPILL",
000390  #endif
000391  #ifdef SQLITE_MALLOC_SOFT_LIMIT
000392    "MALLOC_SOFT_LIMIT=" CTIMEOPT_VAL(SQLITE_MALLOC_SOFT_LIMIT),
000393  #endif
000394  #ifdef SQLITE_MAX_ATTACHED
000395    "MAX_ATTACHED=" CTIMEOPT_VAL(SQLITE_MAX_ATTACHED),
000396  #endif
000397  #ifdef SQLITE_MAX_COLUMN
000398    "MAX_COLUMN=" CTIMEOPT_VAL(SQLITE_MAX_COLUMN),
000399  #endif
000400  #ifdef SQLITE_MAX_COMPOUND_SELECT
000401    "MAX_COMPOUND_SELECT=" CTIMEOPT_VAL(SQLITE_MAX_COMPOUND_SELECT),
000402  #endif
000403  #ifdef SQLITE_MAX_DEFAULT_PAGE_SIZE
000404    "MAX_DEFAULT_PAGE_SIZE=" CTIMEOPT_VAL(SQLITE_MAX_DEFAULT_PAGE_SIZE),
000405  #endif
000406  #ifdef SQLITE_MAX_EXPR_DEPTH
000407    "MAX_EXPR_DEPTH=" CTIMEOPT_VAL(SQLITE_MAX_EXPR_DEPTH),
000408  #endif
000409  #ifdef SQLITE_MAX_FUNCTION_ARG
000410    "MAX_FUNCTION_ARG=" CTIMEOPT_VAL(SQLITE_MAX_FUNCTION_ARG),
000411  #endif
000412  #ifdef SQLITE_MAX_LENGTH
000413    "MAX_LENGTH=" CTIMEOPT_VAL(SQLITE_MAX_LENGTH),
000414  #endif
000415  #ifdef SQLITE_MAX_LIKE_PATTERN_LENGTH
000416    "MAX_LIKE_PATTERN_LENGTH=" CTIMEOPT_VAL(SQLITE_MAX_LIKE_PATTERN_LENGTH),
000417  #endif
000418  #ifdef SQLITE_MAX_MEMORY
000419    "MAX_MEMORY=" CTIMEOPT_VAL(SQLITE_MAX_MEMORY),
000420  #endif
000421  #ifdef SQLITE_MAX_MMAP_SIZE
000422    "MAX_MMAP_SIZE=" CTIMEOPT_VAL(SQLITE_MAX_MMAP_SIZE),
000423  #endif
000424  #ifdef SQLITE_MAX_MMAP_SIZE_
000425    "MAX_MMAP_SIZE_=" CTIMEOPT_VAL(SQLITE_MAX_MMAP_SIZE_),
000426  #endif
000427  #ifdef SQLITE_MAX_PAGE_COUNT
000428    "MAX_PAGE_COUNT=" CTIMEOPT_VAL(SQLITE_MAX_PAGE_COUNT),
000429  #endif
000430  #ifdef SQLITE_MAX_PAGE_SIZE
000431    "MAX_PAGE_SIZE=" CTIMEOPT_VAL(SQLITE_MAX_PAGE_SIZE),
000432  #endif
000433  #ifdef SQLITE_MAX_SCHEMA_RETRY
000434    "MAX_SCHEMA_RETRY=" CTIMEOPT_VAL(SQLITE_MAX_SCHEMA_RETRY),
000435  #endif
000436  #ifdef SQLITE_MAX_SQL_LENGTH
000437    "MAX_SQL_LENGTH=" CTIMEOPT_VAL(SQLITE_MAX_SQL_LENGTH),
000438  #endif
000439  #ifdef SQLITE_MAX_TRIGGER_DEPTH
000440    "MAX_TRIGGER_DEPTH=" CTIMEOPT_VAL(SQLITE_MAX_TRIGGER_DEPTH),
000441  #endif
000442  #ifdef SQLITE_MAX_VARIABLE_NUMBER
000443    "MAX_VARIABLE_NUMBER=" CTIMEOPT_VAL(SQLITE_MAX_VARIABLE_NUMBER),
000444  #endif
000445  #ifdef SQLITE_MAX_VDBE_OP
000446    "MAX_VDBE_OP=" CTIMEOPT_VAL(SQLITE_MAX_VDBE_OP),
000447  #endif
000448  #ifdef SQLITE_MAX_WORKER_THREADS
000449    "MAX_WORKER_THREADS=" CTIMEOPT_VAL(SQLITE_MAX_WORKER_THREADS),
000450  #endif
000451  #if SQLITE_MEMDEBUG
000452    "MEMDEBUG",
000453  #endif
000454  #if SQLITE_MIXED_ENDIAN_64BIT_FLOAT
000455    "MIXED_ENDIAN_64BIT_FLOAT",
000456  #endif
000457  #if SQLITE_MMAP_READWRITE
000458    "MMAP_READWRITE",
000459  #endif
000460  #if SQLITE_MUTEX_NOOP
000461    "MUTEX_NOOP",
000462  #endif
000463  #if SQLITE_MUTEX_NREF
000464    "MUTEX_NREF",
000465  #endif
000466  #if SQLITE_MUTEX_OMIT
000467    "MUTEX_OMIT",
000468  #endif
000469  #if SQLITE_MUTEX_PTHREADS
000470    "MUTEX_PTHREADS",
000471  #endif
000472  #if SQLITE_MUTEX_W32
000473    "MUTEX_W32",
000474  #endif
000475  #if SQLITE_NEED_ERR_NAME
000476    "NEED_ERR_NAME",
000477  #endif
000478  #if SQLITE_NOINLINE
000479    "NOINLINE",
000480  #endif
000481  #if SQLITE_NO_SYNC
000482    "NO_SYNC",
000483  #endif
000484  #if SQLITE_OMIT_ALTERTABLE
000485    "OMIT_ALTERTABLE",
000486  #endif
000487  #if SQLITE_OMIT_ANALYZE
000488    "OMIT_ANALYZE",
000489  #endif
000490  #if SQLITE_OMIT_ATTACH
000491    "OMIT_ATTACH",
000492  #endif
000493  #if SQLITE_OMIT_AUTHORIZATION
000494    "OMIT_AUTHORIZATION",
000495  #endif
000496  #if SQLITE_OMIT_AUTOINCREMENT
000497    "OMIT_AUTOINCREMENT",
000498  #endif
000499  #if SQLITE_OMIT_AUTOINIT
000500    "OMIT_AUTOINIT",
000501  #endif
000502  #if SQLITE_OMIT_AUTOMATIC_INDEX
000503    "OMIT_AUTOMATIC_INDEX",
000504  #endif
000505  #if SQLITE_OMIT_AUTORESET
000506    "OMIT_AUTORESET",
000507  #endif
000508  #if SQLITE_OMIT_AUTOVACUUM
000509    "OMIT_AUTOVACUUM",
000510  #endif
000511  #if SQLITE_OMIT_BETWEEN_OPTIMIZATION
000512    "OMIT_BETWEEN_OPTIMIZATION",
000513  #endif
000514  #if SQLITE_OMIT_BLOB_LITERAL
000515    "OMIT_BLOB_LITERAL",
000516  #endif
000517  #if SQLITE_OMIT_BTREECOUNT
000518    "OMIT_BTREECOUNT",
000519  #endif
000520  #if SQLITE_OMIT_CAST
000521    "OMIT_CAST",
000522  #endif
000523  #if SQLITE_OMIT_CHECK
000524    "OMIT_CHECK",
000525  #endif
000526  #if SQLITE_OMIT_COMPLETE
000527    "OMIT_COMPLETE",
000528  #endif
000529  #if SQLITE_OMIT_COMPOUND_SELECT
000530    "OMIT_COMPOUND_SELECT",
000531  #endif
000532  #if SQLITE_OMIT_CONFLICT_CLAUSE
000533    "OMIT_CONFLICT_CLAUSE",
000534  #endif
000535  #if SQLITE_OMIT_CTE
000536    "OMIT_CTE",
000537  #endif
000538  #if SQLITE_OMIT_DATETIME_FUNCS
000539    "OMIT_DATETIME_FUNCS",
000540  #endif
000541  #if SQLITE_OMIT_DECLTYPE
000542    "OMIT_DECLTYPE",
000543  #endif
000544  #if SQLITE_OMIT_DEPRECATED
000545    "OMIT_DEPRECATED",
000546  #endif
000547  #if SQLITE_OMIT_DISKIO
000548    "OMIT_DISKIO",
000549  #endif
000550  #if SQLITE_OMIT_EXPLAIN
000551    "OMIT_EXPLAIN",
000552  #endif
000553  #if SQLITE_OMIT_FLAG_PRAGMAS
000554    "OMIT_FLAG_PRAGMAS",
000555  #endif
000556  #if SQLITE_OMIT_FLOATING_POINT
000557    "OMIT_FLOATING_POINT",
000558  #endif
000559  #if SQLITE_OMIT_FOREIGN_KEY
000560    "OMIT_FOREIGN_KEY",
000561  #endif
000562  #if SQLITE_OMIT_GET_TABLE
000563    "OMIT_GET_TABLE",
000564  #endif
000565  #if SQLITE_OMIT_HEX_INTEGER
000566    "OMIT_HEX_INTEGER",
000567  #endif
000568  #if SQLITE_OMIT_INCRBLOB
000569    "OMIT_INCRBLOB",
000570  #endif
000571  #if SQLITE_OMIT_INTEGRITY_CHECK
000572    "OMIT_INTEGRITY_CHECK",
000573  #endif
000574  #if SQLITE_OMIT_LIKE_OPTIMIZATION
000575    "OMIT_LIKE_OPTIMIZATION",
000576  #endif
000577  #if SQLITE_OMIT_LOAD_EXTENSION
000578    "OMIT_LOAD_EXTENSION",
000579  #endif
000580  #if SQLITE_OMIT_LOCALTIME
000581    "OMIT_LOCALTIME",
000582  #endif
000583  #if SQLITE_OMIT_LOOKASIDE
000584    "OMIT_LOOKASIDE",
000585  #endif
000586  #if SQLITE_OMIT_MEMORYDB
000587    "OMIT_MEMORYDB",
000588  #endif
000589  #if SQLITE_OMIT_OR_OPTIMIZATION
000590    "OMIT_OR_OPTIMIZATION",
000591  #endif
000592  #if SQLITE_OMIT_PAGER_PRAGMAS
000593    "OMIT_PAGER_PRAGMAS",
000594  #endif
000595  #if SQLITE_OMIT_PARSER_TRACE
000596    "OMIT_PARSER_TRACE",
000597  #endif
000598  #if SQLITE_OMIT_POPEN
000599    "OMIT_POPEN",
000600  #endif
000601  #if SQLITE_OMIT_PRAGMA
000602    "OMIT_PRAGMA",
000603  #endif
000604  #if SQLITE_OMIT_PROGRESS_CALLBACK
000605    "OMIT_PROGRESS_CALLBACK",
000606  #endif
000607  #if SQLITE_OMIT_QUICKBALANCE
000608    "OMIT_QUICKBALANCE",
000609  #endif
000610  #if SQLITE_OMIT_REINDEX
000611    "OMIT_REINDEX",
000612  #endif
000613  #if SQLITE_OMIT_SCHEMA_PRAGMAS
000614    "OMIT_SCHEMA_PRAGMAS",
000615  #endif
000616  #if SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS
000617    "OMIT_SCHEMA_VERSION_PRAGMAS",
000618  #endif
000619  #if SQLITE_OMIT_SHARED_CACHE
000620    "OMIT_SHARED_CACHE",
000621  #endif
000622  #if SQLITE_OMIT_SHUTDOWN_DIRECTORIES
000623    "OMIT_SHUTDOWN_DIRECTORIES",
000624  #endif
000625  #if SQLITE_OMIT_SUBQUERY
000626    "OMIT_SUBQUERY",
000627  #endif
000628  #if SQLITE_OMIT_TCL_VARIABLE
000629    "OMIT_TCL_VARIABLE",
000630  #endif
000631  #if SQLITE_OMIT_TEMPDB
000632    "OMIT_TEMPDB",
000633  #endif
000634  #if SQLITE_OMIT_TEST_CONTROL
000635    "OMIT_TEST_CONTROL",
000636  #endif
000637  #if SQLITE_OMIT_TRACE
000638    "OMIT_TRACE",
000639  #endif
000640  #if SQLITE_OMIT_TRIGGER
000641    "OMIT_TRIGGER",
000642  #endif
000643  #if SQLITE_OMIT_TRUNCATE_OPTIMIZATION
000644    "OMIT_TRUNCATE_OPTIMIZATION",
000645  #endif
000646  #if SQLITE_OMIT_UTF16
000647    "OMIT_UTF16",
000648  #endif
000649  #if SQLITE_OMIT_VACUUM
000650    "OMIT_VACUUM",
000651  #endif
000652  #if SQLITE_OMIT_VIEW
000653    "OMIT_VIEW",
000654  #endif
000655  #if SQLITE_OMIT_VIRTUALTABLE
000656    "OMIT_VIRTUALTABLE",
000657  #endif
000658  #if SQLITE_OMIT_WAL
000659    "OMIT_WAL",
000660  #endif
000661  #if SQLITE_OMIT_WSD
000662    "OMIT_WSD",
000663  #endif
000664  #if SQLITE_OMIT_XFER_OPT
000665    "OMIT_XFER_OPT",
000666  #endif
000667  #if SQLITE_PCACHE_SEPARATE_HEADER
000668    "PCACHE_SEPARATE_HEADER",
000669  #endif
000670  #if SQLITE_PERFORMANCE_TRACE
000671    "PERFORMANCE_TRACE",
000672  #endif
000673  #if SQLITE_POWERSAFE_OVERWRITE
000674    "POWERSAFE_OVERWRITE",
000675  #endif
000676  #if SQLITE_PREFER_PROXY_LOCKING
000677    "PREFER_PROXY_LOCKING",
000678  #endif
000679  #if SQLITE_PROXY_DEBUG
000680    "PROXY_DEBUG",
000681  #endif
000682  #if SQLITE_REVERSE_UNORDERED_SELECTS
000683    "REVERSE_UNORDERED_SELECTS",
000684  #endif
000685  #if SQLITE_RTREE_INT_ONLY
000686    "RTREE_INT_ONLY",
000687  #endif
000688  #if SQLITE_SECURE_DELETE
000689    "SECURE_DELETE",
000690  #endif
000691  #if SQLITE_SMALL_STACK
000692    "SMALL_STACK",
000693  #endif
000694  #ifdef SQLITE_SORTER_PMASZ
000695    "SORTER_PMASZ=" CTIMEOPT_VAL(SQLITE_SORTER_PMASZ),
000696  #endif
000697  #if SQLITE_SOUNDEX
000698    "SOUNDEX",
000699  #endif
000700  #ifdef SQLITE_STAT4_SAMPLES
000701    "STAT4_SAMPLES=" CTIMEOPT_VAL(SQLITE_STAT4_SAMPLES),
000702  #endif
000703  #ifdef SQLITE_STMTJRNL_SPILL
000704    "STMTJRNL_SPILL=" CTIMEOPT_VAL(SQLITE_STMTJRNL_SPILL),
000705  #endif
000706  #if SQLITE_SUBSTR_COMPATIBILITY
000707    "SUBSTR_COMPATIBILITY",
000708  #endif
000709  #if SQLITE_SYSTEM_MALLOC
000710    "SYSTEM_MALLOC",
000711  #endif
000712  #if SQLITE_TCL
000713    "TCL",
000714  #endif
000715  #ifdef SQLITE_TEMP_STORE
000716    "TEMP_STORE=" CTIMEOPT_VAL(SQLITE_TEMP_STORE),
000717  #endif
000718  #if SQLITE_TEST
000719    "TEST",
000720  #endif
000721  #if defined(SQLITE_THREADSAFE)
000722    "THREADSAFE=" CTIMEOPT_VAL(SQLITE_THREADSAFE),
000723  #elif defined(THREADSAFE)
000724    "THREADSAFE=" CTIMEOPT_VAL(THREADSAFE),
000725  #else
000726    "THREADSAFE=1",
000727  #endif
000728  #if SQLITE_UNLINK_AFTER_CLOSE
000729    "UNLINK_AFTER_CLOSE",
000730  #endif
000731  #if SQLITE_UNTESTABLE
000732    "UNTESTABLE",
000733  #endif
000734  #if SQLITE_USER_AUTHENTICATION
000735    "USER_AUTHENTICATION",
000736  #endif
000737  #if SQLITE_USE_ALLOCA
000738    "USE_ALLOCA",
000739  #endif
000740  #if SQLITE_USE_FCNTL_TRACE
000741    "USE_FCNTL_TRACE",
000742  #endif
000743  #if SQLITE_USE_URI
000744    "USE_URI",
000745  #endif
000746  #if SQLITE_VDBE_COVERAGE
000747    "VDBE_COVERAGE",
000748  #endif
000749  #if SQLITE_WIN32_MALLOC
000750    "WIN32_MALLOC",
000751  #endif
000752  #if SQLITE_ZERO_MALLOC
000753    "ZERO_MALLOC",
000754  #endif
000755  /* 
000756  ** END CODE GENERATED BY tool/mkctime.tcl 
000757  */
000758  };
000759  
000760  const char **sqlite3CompileOptions(int *pnOpt){
000761    *pnOpt = sizeof(sqlite3azCompileOpt) / sizeof(sqlite3azCompileOpt[0]);
000762    return (const char**)sqlite3azCompileOpt;
000763  }
000764  
000765  #endif /* SQLITE_OMIT_COMPILEOPTION_DIAGS */