]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Merge the compile-time option introspection interfaces into the trunk.
authordrh <drh@noemail.net>
Tue, 23 Feb 2010 20:32:15 +0000 (20:32 +0000)
committerdrh <drh@noemail.net>
Tue, 23 Feb 2010 20:32:15 +0000 (20:32 +0000)
FossilOrigin-Name: 9f429434c0404f03a3e5c6741b769afe98a5c6c9

1  2 
Makefile.in
main.mk
manifest
manifest.uuid
src/ctime.c
src/func.c
src/main.c
src/sqlite.h.in

diff --cc Makefile.in
index 3bc5d8fda33a20137c980b60c1aacb01a958353f,883da44de5baab4436f7d9b4c96691b7f2212237..e954ccb7d54d80d77d103c8a2ebb9b7e6c1565b9
@@@ -164,7 -164,7 +164,7 @@@ NAWK = @AWK
  # Object files for the SQLite library (non-amalgamation).
  #
  OBJS0 = alter.lo analyze.lo attach.lo auth.lo backup.lo bitvec.lo btmutex.lo \
--        btree.lo build.lo callback.lo complete.lo date.lo \
++        btree.lo build.lo callback.lo complete.lo ctime.lo date.lo \
          delete.lo expr.lo fault.lo fkey.lo func.lo global.lo \
          hash.lo journal.lo insert.lo legacy.lo loadext.lo \
          main.lo malloc.lo mem0.lo mem1.lo mem2.lo mem3.lo mem5.lo \
diff --cc main.mk
index 2e15cc421d049494b4693bc8514f8897b9e5158a,3d7ba0c866fc61b184bf7c4ae67356f0859a5090..455b457f4b7c01f174f1526f10a78c2b453d40b2
+++ b/main.mk
@@@ -52,7 -52,7 +52,7 @@@ TCCX += -I$(TOP)/ext/asyn
  #
  LIBOBJ+= alter.o analyze.o attach.o auth.o \
           backup.o bitvec.o btmutex.o btree.o build.o \
--         callback.o complete.o date.o delete.o expr.o fault.o fkey.o \
++         callback.o complete.o ctime.o date.o delete.o expr.o fault.o fkey.o \
           fts3.o fts3_expr.o fts3_hash.o fts3_icu.o fts3_porter.o \
           fts3_snippet.o fts3_tokenizer.o fts3_tokenizer1.o fts3_write.o \
           func.o global.o hash.o \
diff --cc manifest
index a87c0bdb3c21395cb4b8e9ab10c01a085cff6666,1d8be4544e0db0257e8aa8220ca236efaed6edd1..526fd97ae6d3faacbb8a3557497e00a1d4d65db4
+++ b/manifest
@@@ -1,12 -1,9 +1,12 @@@
 -C Refactored\scompile\stime\soption\sdiagnostic\ssupport\sto\suse\sstrings\sidentifiers\sinstead\sof\sbitmask.
 -D 2010-02-23T20:08:36
 +-----BEGIN PGP SIGNED MESSAGE-----
 +Hash: SHA1
 +
- C Continuing\simprovements\sto\serror\sreporting\sand\sthe\ssqlite3_log()\sroutine.
- D 2010-02-23T20:11:57
++C Merge\sthe\scompile-time\soption\sintrospection\sinterfaces\sinto\sthe\strunk.
++D 2010-02-23T20:32:15
  F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
- F Makefile.in c5827ead754ab32b9585487177c93bb00b9497b3
 -F Makefile.in df88fba41a6d14b79ab8cd9afa2cff8fa30f201e
++F Makefile.in 4f2f967b7e58a35bb74fb7ec8ae90e0f4ca7868b
  F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
- F Makefile.vxworks 10010ddbf52e2503c7c49c7c0b7c7a096f8638a6
+ F Makefile.vxworks ab005d301296c40e021ccd0133ce49ca811e319f
  F README cd04a36fbc7ea56932a4052d7d0b7f09f27c33d6
  F VERSION 2f8d921ecf804e9eb01e836a09512d0318ebd4d3
  F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50
@@@ -92,7 -89,7 +92,7 @@@ F ext/rtree/tkt3363.test 2bf324f7908084
  F ext/rtree/viewrtree.tcl eea6224b3553599ae665b239bd827e182b466024
  F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895
  F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8
- F main.mk 93d7ab227d0110d996d0db430a9a27d42980c7be
 -F main.mk 37efe9fdc797e5d410d3b09f4ce3d8e469709c2e
++F main.mk a36a05a481afcc00388c4d6d4db0e12cacb546e3
  F mkdll.sh 7d09b23c05d56532e9d44a50868eb4b12ff4f74a
  F mkextu.sh 416f9b7089d80e5590a29692c9d9280a10dbad9f
  F mkextw.sh 4123480947681d9b434a5e7b1ee08135abe409ac
@@@ -117,29 -114,30 +117,30 @@@ F src/btree.h 0e193b7e90f1d78b79c794740
  F src/btreeInt.h 71ed5e7f009caf17b7dc304350b3cb64b5970135
  F src/build.c 254a273acb8923f3bdecc933d787f4f67737c489
  F src/callback.c 908f3e0172c3d4058f4ca0acd42c637c52e9669f
 -F src/complete.c 4c8a742c4a4a6d9c835912648f5c8f032ea36c7b
 -F src/ctime.c 97598003ee7177fc34f1cc008a689b10708e8843
 +F src/complete.c dc1d136c0feee03c2f7550bafc0d29075e36deac
++F src/ctime.c af27b864e4f6aa179cae9488e20d9bc281200e50
  F src/date.c 485a4409a384310e6d93fd1104a9d0a8658becd9
  F src/delete.c 610dc008e88a9599f905f5cbe9577ac9c36e0581
  F src/expr.c d0a345e1d8995e142bc5d9f39a97b9981d7d8f23
  F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb
  F src/fkey.c e2116672a6bd610dc888e27df292ebc7999c9bb0
- F src/func.c 3864490a90a03ab1d657cdd04da78879c18b18d1
 -F src/func.c 248e2e88e5b9ff38bbd18ab4e2899adf8dc7df15
++F src/func.c d1fbbfe135a25778294c77cee031e5ced39bda72
  F src/global.c 5a9c1e3c93213ca574786ac1caa976ce8f709105
  F src/hash.c 458488dcc159c301b8e7686280ab209f1fb915af
  F src/hash.h 2894c932d84d9f892d4b4023a75e501f83050970
  F src/hwtime.h d32741c8f4df852c7d959236615444e2b1063b08
  F src/insert.c 76d6b44a9f9050134fd81205f4b792cbdac7c925
  F src/journal.c b0ea6b70b532961118ab70301c00a33089f9315c
 -F src/legacy.c 16f385490f377c2c80a6c7357391d499087defed
 +F src/legacy.c a199d7683d60cef73089e892409113e69c23a99f
  F src/lempar.c 7f026423f4d71d989e719a743f98a1cbd4e6d99e
  F src/loadext.c 1c7a61ce1281041f437333f366a96aa0d29bb581
- F src/main.c d94ccec07c2c8fccdabe4e70515e6875638e11d1
 -F src/main.c 49c1133cd28dd45bb1b95c0000b786577ace2ee0
++F src/main.c f4226ebd8c0e7d6ee712072356455e7712ce99c9
  F src/malloc.c 5fa175797f982b178eaf38afba9c588a866be729
  F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
 -F src/mem1.c 86f33483a343873bab8ae1b648c2eac55462da74
 +F src/mem1.c 760dbac6ead11b901a8dcfa210f891b638a87507
  F src/mem2.c 92b4f772b1ee7469e256f1c2eff0b51a0ba19460
  F src/mem3.c 9b237d911ba9904142a804be727cc6664873f8a3
 -F src/mem5.c 4837b795ebdecc0cfe1522cd0c8b2c5d84ea490d
 +F src/mem5.c 7060e51b8dfe04c3d1e4297ccdbbba3a331c9673
  F src/memjournal.c 5bfc2f33c914946e2f77ed3f882aff14dfc9355d
  F src/mutex.c 581a272e09098040ca3ef543cb5f3d643eff7d50
  F src/mutex.h 6fde601e55fa6c3fae768783c439797ab84c87c6
@@@ -160,19 -158,19 +161,19 @@@ F src/parse.y ace5c7a125d9f2a410e431ee3
  F src/pcache.c 815bcb3cf0e14b23212efd3f4981f667a5fd633e
  F src/pcache.h c683390d50f856d4cd8e24342ae62027d1bb6050
  F src/pcache1.c 2bb2261190b42a348038f5b1c285c8cef415fcc8
- F src/pragma.c 5febf8b5d88cc331effb3f2e14d0473488649b1e
+ F src/pragma.c 1ee3a5bea3e79bd4ad2519eb9745e1781bf443ea
 -F src/prepare.c d4cd38ccfb51f1424d0e61d4878a810b7e1ebb60
 +F src/prepare.c 341413e4703df1f0430e595a78c33e722e6cb8d0
  F src/printf.c f5c160b471e4a4dd22b756cb4ffe0c6979fd6d24
  F src/random.c cd4a67b3953b88019f8cd4ccd81394a8ddfaba50
  F src/resolve.c a1648d98e869937b29f4f697461fe4d60f220a7b
  F src/rowset.c 69afa95a97c524ba6faf3805e717b5b7ae85a697
  F src/select.c 0109b993c360d649857523abb72919e1794f9b45
  F src/shell.c 31cd555125a1fda4a6d8dce019690f043a8e5d75
- F src/sqlite.h.in 16f33c1ceb971bfa7a04a73039947630f445146e
 -F src/sqlite.h.in d04ee7db03b3e7bc69581d2eed26ebf3d4d8177d
++F src/sqlite.h.in a9f51302109f32e3048358122d1e38fd3ead593f
  F src/sqlite3ext.h 69dfb8116af51b84a029cddb3b35062354270c89
 -F src/sqliteInt.h d5fe1c8335b5bf376639837fa42124327cdb6767
 +F src/sqliteInt.h 32e6eb47d2f6fad587e16b0abbbfe3f7d55f2ec0
  F src/sqliteLimit.h 3afab2291762b5d09ae20c18feb8e9fa935a60a6
 -F src/status.c e651be6b30d397d86384c6867bc016e4913bcac7
 +F src/status.c d329385a2cba3ea49d9d68af0ad84b22d46b4f40
  F src/table.c 2cd62736f845d82200acfa1287e33feb3c15d62e
  F src/tclsqlite.c bad6570a005b234ea670b9f7b48256da19a032d3
  F src/test1.c db4d8fd2849ab9aca0f27fd3773b8d68d078cf86
@@@ -793,14 -792,7 +794,14 @@@ F tool/speedtest2.tcl ee2149167303ba8e9
  F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
  F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
  F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
- P e37137376a2b23062e2625b5285299b33630b326
- R ff1cb485ed704c1bce9db4fcbca8cdc6
 -P 875f8fa32708b8dbf314fd7056fac2fefdacfa36
 -R cdc4eebebe40861bae38fc9e53a75e94
 -U shaneh
 -Z a7385ef8c8d8c43ce8853ca9ce26557f
++P edea3bb740ddd096a46e00678b59d465bb1e2903 76a0294ab4208a0858a13bab0858e1bc1448b651
++R b35175023051c7d34a934eed9c09fecc
 +U drh
- Z 168aca2978964e709184819b947f4e6a
++Z b813deaa3c8e80f7d379ad8d205f30b4
 +-----BEGIN PGP SIGNATURE-----
 +Version: GnuPG v1.4.6 (GNU/Linux)
 +
- iD8DBQFLhDaRoxKgR168RlERAv9oAJ0SA4nqkb1+S5qfHoZ3kSPAMZT2bgCfafXz
- c0zqsF+MwQrPWlRJNCAoywk=
- =o/6s
++iD4DBQFLhDtToxKgR168RlERAiIJAJ4sxDb50Ahh6anzP0DgFOww+gn3JgCYoVgL
++XxKHjRo8pYgc4TchsfsZyA==
++=0chk
 +-----END PGP SIGNATURE-----
diff --cc manifest.uuid
index 5c4942327fc08dcea1c76daa0e5d654ff51d4e3c,3f6c58085cd339de63ba8b9af283c9c7bbf65ec6..44df1fea59da2f949abf1fac3e2c8bf8f82462e3
@@@ -1,1 -1,1 +1,1 @@@
- edea3bb740ddd096a46e00678b59d465bb1e2903
 -76a0294ab4208a0858a13bab0858e1bc1448b651
++9f429434c0404f03a3e5c6741b769afe98a5c6c9
diff --cc src/ctime.c
index 0000000000000000000000000000000000000000,88f581e88c5f198f42ce3d91523939fdbba84251..63e577015af0593d2c1d94645cb6ae40fa719d99
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,368 +1,368 @@@
 -const char * const sqlite3_compileoption_get(int N){
+ /*
+ ** 2010 February 23
+ **
+ ** The author disclaims copyright to this source code.  In place of
+ ** a legal notice, here is a blessing:
+ **
+ **    May you do good and not evil.
+ **    May you find forgiveness for yourself and forgive others.
+ **    May you share freely, never taking more than you give.
+ **
+ *************************************************************************
+ **
+ ** This file implements routines used to report what compile-time options
+ ** SQLite was built with.
+ */
+ #ifndef SQLITE_OMIT_COMPILEOPTION_DIAGS
+ #include "sqliteInt.h"
+ /*
+ ** An array of names of all compile-time options.
+ **
+ ** This array looks large, but in a typical installation actually uses
+ ** only a handful of compile-time options, so most this array is usually
+ ** rather short and uses little memory space.
+ */
+ static const char * const azCompileOpt[] = {
+ #ifdef SQLITE_32BIT_ROWID
+   "32BIT_ROWID",
+ #endif
+ #ifdef SQLITE_4_BYTE_ALIGNED_MALLOC
+   "4_BYTE_ALIGNED_MALLOC",
+ #endif
+ #ifdef SQLITE_CASE_SENSITIVE_LIKE
+   "CASE_SENSITIVE_LIKE",
+ #endif
+ #ifdef SQLITE_CHECK_PAGES
+   "CHECK_PAGES",
+ #endif
+ #ifdef SQLITE_COVERAGE_TEST
+   "COVERAGE_TEST",
+ #endif
+ #ifdef SQLITE_DEBUG
+   "DEBUG",
+ #endif
+ #ifdef SQLITE_DISABLE_DIRSYNC
+   "DISABLE_DIRSYNC",
+ #endif
+ #ifdef SQLITE_DISABLE_LFS
+   "DISABLE_LFS",
+ #endif
+ #ifdef SQLITE_ENABLE_ATOMIC_WRITE
+   "ENABLE_ATOMIC_WRITE",
+ #endif
+ #ifdef SQLITE_ENABLE_CEROD
+   "ENABLE_CEROD",
+ #endif
+ #ifdef SQLITE_ENABLE_COLUMN_METADATA
+   "ENABLE_COLUMN_METADATA",
+ #endif
+ #ifdef SQLITE_ENABLE_EXPENSIVE_ASSERT
+   "ENABLE_EXPENSIVE_ASSERT",
+ #endif
+ #ifdef SQLITE_ENABLE_FTS1
+   "ENABLE_FTS1",
+ #endif
+ #ifdef SQLITE_ENABLE_FTS2
+   "ENABLE_FTS2",
+ #endif
+ #ifdef SQLITE_ENABLE_FTS3
+   "ENABLE_FTS3",
+ #endif
+ #ifdef SQLITE_ENABLE_FTS3_PARENTHESIS
+   "ENABLE_FTS3_PARENTHESIS",
+ #endif
+ #ifdef SQLITE_ENABLE_FTS4
+   "ENABLE_FTS4",
+ #endif
+ #ifdef SQLITE_ENABLE_ICU
+   "ENABLE_ICU",
+ #endif
+ #ifdef SQLITE_ENABLE_IOTRACE
+   "ENABLE_IOTRACE",
+ #endif
+ #ifdef SQLITE_ENABLE_LOAD_EXTENSION
+   "ENABLE_LOAD_EXTENSION",
+ #endif
+ #ifdef SQLITE_ENABLE_LOCKING_STYLE
+   "ENABLE_LOCKING_STYLE",
+ #endif
+ #ifdef SQLITE_ENABLE_MEMORY_MANAGEMENT
+   "ENABLE_MEMORY_MANAGEMENT",
+ #endif
+ #ifdef SQLITE_ENABLE_MEMSYS3
+   "ENABLE_MEMSYS3",
+ #endif
+ #ifdef SQLITE_ENABLE_MEMSYS5
+   "ENABLE_MEMSYS5",
+ #endif
+ #ifdef SQLITE_ENABLE_OVERSIZE_CELL_CHECK
+   "ENABLE_OVERSIZE_CELL_CHECK",
+ #endif
+ #ifdef SQLITE_ENABLE_RTREE
+   "ENABLE_RTREE",
+ #endif
+ #ifdef SQLITE_ENABLE_STAT2
+   "ENABLE_STAT2",
+ #endif
+ #ifdef SQLITE_ENABLE_UNLOCK_NOTIFY
+   "ENABLE_UNLOCK_NOTIFY",
+ #endif
+ #ifdef SQLITE_ENABLE_UPDATE_DELETE_LIMIT
+   "ENABLE_UPDATE_DELETE_LIMIT",
+ #endif
+ #ifdef SQLITE_HAS_CODEC
+   "HAS_CODEC",
+ #endif
+ #ifdef SQLITE_HAVE_ISNAN
+   "HAVE_ISNAN",
+ #endif
+ #ifdef SQLITE_HOMEGROWN_RECURSIVE_MUTEX
+   "HOMEGROWN_RECURSIVE_MUTEX",
+ #endif
+ #ifdef SQLITE_IGNORE_AFP_LOCK_ERRORS
+   "IGNORE_AFP_LOCK_ERRORS",
+ #endif
+ #ifdef SQLITE_IGNORE_FLOCK_LOCK_ERRORS
+   "IGNORE_FLOCK_LOCK_ERRORS",
+ #endif
+ #ifdef SQLITE_INT64_TYPE
+   "INT64_TYPE",
+ #endif
+ #ifdef SQLITE_LOCK_TRACE
+   "LOCK_TRACE",
+ #endif
+ #ifdef SQLITE_MEMDEBUG
+   "MEMDEBUG",
+ #endif
+ #ifdef SQLITE_MIXED_ENDIAN_64BIT_FLOAT
+   "MIXED_ENDIAN_64BIT_FLOAT",
+ #endif
+ #ifdef SQLITE_NO_SYNC
+   "NO_SYNC",
+ #endif
+ #ifdef SQLITE_OMIT_ALTERTABLE
+   "OMIT_ALTERTABLE",
+ #endif
+ #ifdef SQLITE_OMIT_ANALYZE
+   "OMIT_ANALYZE",
+ #endif
+ #ifdef SQLITE_OMIT_ATTACH
+   "OMIT_ATTACH",
+ #endif
+ #ifdef SQLITE_OMIT_AUTHORIZATION
+   "OMIT_AUTHORIZATION",
+ #endif
+ #ifdef SQLITE_OMIT_AUTOINCREMENT
+   "OMIT_AUTOINCREMENT",
+ #endif
+ #ifdef SQLITE_OMIT_AUTOINIT
+   "OMIT_AUTOINIT",
+ #endif
+ #ifdef SQLITE_OMIT_AUTOVACUUM
+   "OMIT_AUTOVACUUM",
+ #endif
+ #ifdef SQLITE_OMIT_BETWEEN_OPTIMIZATION
+   "OMIT_BETWEEN_OPTIMIZATION",
+ #endif
+ #ifdef SQLITE_OMIT_BLOB_LITERAL
+   "OMIT_BLOB_LITERAL",
+ #endif
+ #ifdef SQLITE_OMIT_BTREECOUNT
+   "OMIT_BTREECOUNT",
+ #endif
+ #ifdef SQLITE_OMIT_BUILTIN_TEST
+   "OMIT_BUILTIN_TEST",
+ #endif
+ #ifdef SQLITE_OMIT_CAST
+   "OMIT_CAST",
+ #endif
+ #ifdef SQLITE_OMIT_CHECK
+   "OMIT_CHECK",
+ #endif
+ #ifdef SQLITE_OMIT_COMPILEOPTION_DIAGS
+   "OMIT_COMPILEOPTION_DIAGS",
+ #endif
+ #ifdef SQLITE_OMIT_COMPLETE
+   "OMIT_COMPLETE",
+ #endif
+ #ifdef SQLITE_OMIT_COMPOUND_SELECT
+   "OMIT_COMPOUND_SELECT",
+ #endif
+ #ifdef SQLITE_OMIT_DATETIME_FUNCS
+   "OMIT_DATETIME_FUNCS",
+ #endif
+ #ifdef SQLITE_OMIT_DECLTYPE
+   "OMIT_DECLTYPE",
+ #endif
+ #ifdef SQLITE_OMIT_DEPRECATED
+   "OMIT_DEPRECATED",
+ #endif
+ #ifdef SQLITE_OMIT_DISKIO
+   "OMIT_DISKIO",
+ #endif
+ #ifdef SQLITE_OMIT_EXPLAIN
+   "OMIT_EXPLAIN",
+ #endif
+ #ifdef SQLITE_OMIT_FLAG_PRAGMAS
+   "OMIT_FLAG_PRAGMAS",
+ #endif
+ #ifdef SQLITE_OMIT_FLOATING_POINT
+   "OMIT_FLOATING_POINT",
+ #endif
+ #ifdef SQLITE_OMIT_FOREIGN_KEY
+   "OMIT_FOREIGN_KEY",
+ #endif
+ #ifdef SQLITE_OMIT_GET_TABLE
+   "OMIT_GET_TABLE",
+ #endif
+ #ifdef SQLITE_OMIT_GLOBALRECOVER
+   "OMIT_GLOBALRECOVER",
+ #endif
+ #ifdef SQLITE_OMIT_INCRBLOB
+   "OMIT_INCRBLOB",
+ #endif
+ #ifdef SQLITE_OMIT_INTEGRITY_CHECK
+   "OMIT_INTEGRITY_CHECK",
+ #endif
+ #ifdef SQLITE_OMIT_LIKE_OPTIMIZATION
+   "OMIT_LIKE_OPTIMIZATION",
+ #endif
+ #ifdef SQLITE_OMIT_LOAD_EXTENSION
+   "OMIT_LOAD_EXTENSION",
+ #endif
+ #ifdef SQLITE_OMIT_LOCALTIME
+   "OMIT_LOCALTIME",
+ #endif
+ #ifdef SQLITE_OMIT_LOOKASIDE
+   "OMIT_LOOKASIDE",
+ #endif
+ #ifdef SQLITE_OMIT_MEMORYDB
+   "OMIT_MEMORYDB",
+ #endif
+ #ifdef SQLITE_OMIT_OR_OPTIMIZATION
+   "OMIT_OR_OPTIMIZATION",
+ #endif
+ #ifdef SQLITE_OMIT_PAGER_PRAGMAS
+   "OMIT_PAGER_PRAGMAS",
+ #endif
+ #ifdef SQLITE_OMIT_PRAGMA
+   "OMIT_PRAGMA",
+ #endif
+ #ifdef SQLITE_OMIT_PROGRESS_CALLBACK
+   "OMIT_PROGRESS_CALLBACK",
+ #endif
+ #ifdef SQLITE_OMIT_QUICKBALANCE
+   "OMIT_QUICKBALANCE",
+ #endif
+ #ifdef SQLITE_OMIT_REINDEX
+   "OMIT_REINDEX",
+ #endif
+ #ifdef SQLITE_OMIT_SCHEMA_PRAGMAS
+   "OMIT_SCHEMA_PRAGMAS",
+ #endif
+ #ifdef SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS
+   "OMIT_SCHEMA_VERSION_PRAGMAS",
+ #endif
+ #ifdef SQLITE_OMIT_SHARED_CACHE
+   "OMIT_SHARED_CACHE",
+ #endif
+ #ifdef SQLITE_OMIT_SUBQUERY
+   "OMIT_SUBQUERY",
+ #endif
+ #ifdef SQLITE_OMIT_TCL_VARIABLE
+   "OMIT_TCL_VARIABLE",
+ #endif
+ #ifdef SQLITE_OMIT_TEMPDB
+   "OMIT_TEMPDB",
+ #endif
+ #ifdef SQLITE_OMIT_TRACE
+   "OMIT_TRACE",
+ #endif
+ #ifdef SQLITE_OMIT_TRIGGER
+   "OMIT_TRIGGER",
+ #endif
+ #ifdef SQLITE_OMIT_TRUNCATE_OPTIMIZATION
+   "OMIT_TRUNCATE_OPTIMIZATION",
+ #endif
+ #ifdef SQLITE_OMIT_UTF16
+   "OMIT_UTF16",
+ #endif
+ #ifdef SQLITE_OMIT_VACUUM
+   "OMIT_VACUUM",
+ #endif
+ #ifdef SQLITE_OMIT_VIEW
+   "OMIT_VIEW",
+ #endif
+ #ifdef SQLITE_OMIT_VIRTUALTABLE
+   "OMIT_VIRTUALTABLE",
+ #endif
+ #ifdef SQLITE_OMIT_WSD
+   "OMIT_WSD",
+ #endif
+ #ifdef SQLITE_OMIT_XFER_OPT
+   "OMIT_XFER_OPT",
+ #endif
+ #ifdef SQLITE_PERFORMANCE_TRACE
+   "PERFORMANCE_TRACE",
+ #endif
+ #ifdef SQLITE_PROXY_DEBUG
+   "PROXY_DEBUG",
+ #endif
+ #ifdef SQLITE_SECURE_DELETE
+   "SECURE_DELETE",
+ #endif
+ #ifdef SQLITE_SMALL_STACK
+   "SMALL_STACK",
+ #endif
+ #ifdef SQLITE_SOUNDEX
+   "SOUNDEX",
+ #endif
+ #ifdef SQLITE_TCL
+   "TCL",
+ #endif
+ #ifdef SQLITE_TEST
+   "TEST",
+ #endif
+ #ifdef SQLITE_USE_ALLOCA
+   "USE_ALLOCA",
+ #endif
+ #ifdef SQLITE_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.
+ */
+ int sqlite3_compileoption_used(const char *zOptName){
+   int i, n;
+   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+1)==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;
+ }
+ #endif /* SQLITE_OMIT_COMPILEOPTION_DIAGS */
diff --cc src/func.c
index d633ff83c353138548ad31c61202a3264d071aff,bed675da86f22cf083a9a1b0f486d99f25386587..f24215477cfe200eec0ad7dd80343ca974b3420a
@@@ -774,6 -774,52 +774,52 @@@ static void sourceidFunc
    sqlite3_result_text(context, sqlite3_sourceid(), -1, SQLITE_STATIC);
  }
  
 -      && ( (zOptName = sqlite3_value_text(argv[0]))!=0 )){
+ /*
+ ** Implementation of the sqlite_compileoption_used() function.
+ ** The result is an integer that identifies if the compiler option
+ ** was used to build SQLite.
+ */
+ #ifndef SQLITE_OMIT_COMPILEOPTION_DIAGS
+ static void compileoptionusedFunc(
+   sqlite3_context *context,
+   int argc,
+   sqlite3_value **argv
+ ){
+   const char *zOptName;
+   assert( argc==1 );
+   UNUSED_PARAMETER(argc);
+   /* IMP: R-xxxx This function is an SQL wrapper around the
+   ** sqlite3_compileoption_used() C interface. */
+   if (   ( sqlite3_value_type(argv[0])==SQLITE_TEXT )
++      && ( (zOptName = (const char*)sqlite3_value_text(argv[0]))!=0 )){
+     sqlite3_result_int(context, sqlite3_compileoption_used(zOptName));
+   }else{
+     sqlite3_result_null(context);
+   }
+ }
+ #endif /* SQLITE_OMIT_COMPILEOPTION_DIAGS */
+ /*
+ ** Implementation of the sqlite_compileoption_get() function. 
+ ** The result is a string that identifies the compiler options 
+ ** used to build SQLite.
+ */
+ #ifndef SQLITE_OMIT_COMPILEOPTION_DIAGS
+ static void compileoptiongetFunc(
+   sqlite3_context *context,
+   int argc,
+   sqlite3_value **argv
+ ){
+   int n;
+   assert( argc==1 );
+   UNUSED_PARAMETER(argc);
+   /* IMP: R-xxxx This function is an SQL wrapper around the
+   ** sqlite3_compileoption_get() C interface. */
+   n = sqlite3_value_int(argv[0]);
+   sqlite3_result_text(context, sqlite3_compileoption_get(n), -1, SQLITE_STATIC);
+ }
+ #endif /* SQLITE_OMIT_COMPILEOPTION_DIAGS */
  /* Array for converting from half-bytes (nybbles) into ASCII hex
  ** digits. */
  static const char hexdigits[] = {
diff --cc src/main.c
Simple merge
diff --cc src/sqlite.h.in
index 1c0a5bf52bb02e0b46587b533e8ede13884fc70b,153688eae7c8d77348ea76b663411da7369ce117..37c8df201448ea8674e692bf1b7123690c19e607
@@@ -141,6 -141,33 +141,33 @@@ const char *sqlite3_libversion(void)
  const char *sqlite3_sourceid(void);
  int sqlite3_libversion_number(void);
  
 -const char * const sqlite3_compileoption_get(int N);
+ /*
+ ** CAPI3REF: Run-Time Library Compilation Options Diagnostics
+ ** KEYWORDS: sqlite3_compileoption_used, sqlite3_compileoption_get
+ **
+ ** ^The sqlite3_compileoption_used() function returns 0 or 1 
+ ** indicating whether the specified option was defined at 
+ ** compile time.  ^The SQLITE_ prefix may be omitted from the 
+ ** option name passed to sqlite3_compileoption_used().  
+ **
+ ** ^The sqlite3_compileoption_get() function allows interating
+ ** over the list of options that were defined at compile time by
+ ** returning the N-th compile time option string.  ^If N is out of range,
+ ** sqlite3_compileoption_get() returns a NULL pointer.  ^The SQLITE_ 
+ ** prefix is omitted from any strings returned by 
+ ** sqlite3_compileoption_get().
+ **
+ ** ^Support for the diagnostic functions sqlite3_compileoption_used()
+ ** and sqlite3_compileoption_get() may be omitted by specifing the 
+ ** SQLITE_OMIT_COMPILEOPTION_DIAGS option at compile time.
+ **
+ ** See also: [sqlite_compile_option_used()] and [sqlite_compile_option_get()].
+ */
+ #ifndef SQLITE_OMIT_COMPILEOPTION_DIAGS
+ int sqlite3_compileoption_used(const char *zOptName);
++const char *sqlite3_compileoption_get(int N);
+ #endif /* SQLITE_OMIT_COMPILEOPTION_DIAGS */
  /*
  ** CAPI3REF: Test To See If The Library Is Threadsafe
  **