# 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 \
#
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 \
-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
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
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
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
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-----
- edea3bb740ddd096a46e00678b59d465bb1e2903
-76a0294ab4208a0858a13bab0858e1bc1448b651
++9f429434c0404f03a3e5c6741b769afe98a5c6c9
--- /dev/null
-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 */
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[] = {
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
**