]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Test new api to report which options (defines) were used to compile SQLite.
authorshaneh <shaneh@noemail.net>
Tue, 23 Feb 2010 04:19:54 +0000 (04:19 +0000)
committershaneh <shaneh@noemail.net>
Tue, 23 Feb 2010 04:19:54 +0000 (04:19 +0000)
FossilOrigin-Name: 84c9756993caf82710a0905ed1987d144bc764fd

manifest
manifest.uuid
src/func.c
src/main.c
src/sqlite.h.in

index c851c5f870e3536dc95efd19f2f7eefb5768deff..69ae5b8fc260aa83d11210a38c260135ebd6ee2b 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,8 +1,5 @@
------BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA1
-
-C Add\sthe\s".log"\scommand\sto\sthe\sshell.\s\sThis\sshows\sthat\ssome\serrors\sare\slogged\nmultiple\stimes\sand\sother\serrors\sare\snever\slogged\sat\sall.
-D 2010-02-23T01:47:00
+C Test\snew\sapi\sto\sreport\swhich\soptions\s(defines)\swere\sused\sto\scompile\sSQLite.
+D 2010-02-23T04:19:55
 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
 F Makefile.in c5827ead754ab32b9585487177c93bb00b9497b3
 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@@ -123,7 +120,7 @@ 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 8854b7a234b4272a78941fcc899c117d1839cd4e
 F src/global.c 5a9c1e3c93213ca574786ac1caa976ce8f709105
 F src/hash.c 458488dcc159c301b8e7686280ab209f1fb915af
 F src/hash.h 2894c932d84d9f892d4b4023a75e501f83050970
@@ -133,7 +130,7 @@ F src/journal.c b0ea6b70b532961118ab70301c00a33089f9315c
 F src/legacy.c 16f385490f377c2c80a6c7357391d499087defed
 F src/lempar.c 7f026423f4d71d989e719a743f98a1cbd4e6d99e
 F src/loadext.c 1c7a61ce1281041f437333f366a96aa0d29bb581
-F src/main.c 36c1c11ee2677ae247e0c947f9293749ee5ac85f
+F src/main.c e3e88f01f0f3555b837c867f6cdb9342a5ea3333
 F src/malloc.c 5fa175797f982b178eaf38afba9c588a866be729
 F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
 F src/mem1.c 86f33483a343873bab8ae1b648c2eac55462da74
@@ -168,7 +165,7 @@ 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 451a5a8bb2f6183ac50ae65f45f6e2b8ef4c6439
 F src/sqlite3ext.h 69dfb8116af51b84a029cddb3b35062354270c89
 F src/sqliteInt.h d5fe1c8335b5bf376639837fa42124327cdb6767
 F src/sqliteLimit.h 3afab2291762b5d09ae20c18feb8e9fa935a60a6
@@ -794,14 +791,11 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
-P c4401fc93b66c5339422d7e765a4a32b1ef96bdb
-R 1b44bf57e7d9a663688d30603c70b44c
-U drh
-Z 75784795cda6fd26f0b8feb0805d2536
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.6 (GNU/Linux)
-
-iD8DBQFLgzOYoxKgR168RlERAgluAJ9q3mIeRrQvfpzpmiNDDWtRun1WrQCeME9w
-x+Fdmmhc/ksLrbX58/ixhCk=
-=d2xc
------END PGP SIGNATURE-----
+P 6d910245ad0097521cf1619449cc3d202137b8b8
+R dedbbaae7790d6d9129d67a846293910
+T *bgcolor * pink
+T *branch * compile_opts
+T *sym-compile_opts *
+T -sym-trunk *
+U shaneh
+Z a5cfd4374a14e6e3e3c31ae8396a940a
index f774487e2645524b4e19885efeff7380800979cc..47e5608e9d7670362259bed8886b637ac0c4241e 100644 (file)
@@ -1 +1 @@
-6d910245ad0097521cf1619449cc3d202137b8b8
\ No newline at end of file
+84c9756993caf82710a0905ed1987d144bc764fd
\ No newline at end of file
index d633ff83c353138548ad31c61202a3264d071aff..19903e71db0edbf47ebf4f0c17e3728c493c380a 100644 (file)
@@ -774,6 +774,21 @@ static void sourceidFunc(
   sqlite3_result_text(context, sqlite3_sourceid(), -1, SQLITE_STATIC);
 }
 
+/*
+** Implementation of the sqlite_compile_opts() function. The result is a string
+** that identifies the compiler options used to build SQLite.
+*/
+static void compileoptsFunc(
+  sqlite3_context *context,
+  int NotUsed,
+  sqlite3_value **NotUsed2
+){
+  UNUSED_PARAMETER2(NotUsed, NotUsed2);
+  /* IMP: R-xxxx This function is an SQL wrapper around the
+  ** sqlite3_compileopts() C interface. */
+  sqlite3_result_text(context, sqlite3_compileopts(), -1, SQLITE_STATIC);
+}
+
 /* Array for converting from half-bytes (nybbles) into ASCII hex
 ** digits. */
 static const char hexdigits[] = {
@@ -1505,6 +1520,7 @@ void sqlite3RegisterGlobalFunctions(void){
     FUNCTION(nullif,             2, 0, 1, nullifFunc       ),
     FUNCTION(sqlite_version,     0, 0, 0, versionFunc      ),
     FUNCTION(sqlite_source_id,   0, 0, 0, sourceidFunc     ),
+    FUNCTION(sqlite_compile_opts,0, 0, 0, compileoptsFunc  ),
     FUNCTION(quote,              1, 0, 0, quoteFunc        ),
     FUNCTION(last_insert_rowid,  0, 0, 0, last_insert_rowid),
     FUNCTION(changes,            0, 0, 0, changes          ),
index e4419d269daa55063bc6d82afb55b0b53eb3e069..78e11d233417e6bdfe9c07420be4ff6a59f5ffb3 100644 (file)
@@ -36,6 +36,402 @@ const char *sqlite3_libversion(void){ return sqlite3_version; }
 const char *sqlite3_sourceid(void){ return SQLITE_SOURCE_ID; }
 int sqlite3_libversion_number(void){ return SQLITE_VERSION_NUMBER; }
 int sqlite3_threadsafe(void){ return SQLITE_THREADSAFE; }
+const char *sqlite3_compileopts(void){ 
+  static char zOpts[32] = "";
+  sqlite_int64 iEnable = 0; /* bitmask of all the SQLITE_ENABLE* defines */
+  sqlite_int64 iOmit = 0;   /* bitmask of all the SQLITE_OMIT* defines */
+  sqlite_int64 iOther = 0;  /* bitmask of all the SQLITE_* defines except */
+                            /*   SQLITE_MAX* and SQLITE_DEF* */
+
+#ifdef SQLITE_32BIT_ROWID
+  iOther |= ((sqlite_int64)1<<0);
+#endif
+#ifdef SQLITE_4_BYTE_ALIGNED_MALLOC
+  iOther |= ((sqlite_int64)1<<1);
+#endif
+#ifdef SQLITE_AMALGAMATION
+  iOther |= ((sqlite_int64)1<<2);
+#endif
+#ifdef SQLITE_API
+  iOther |= ((sqlite_int64)1<<3);
+#endif
+#ifdef SQLITE_ASCII
+  iOther |= ((sqlite_int64)1<<4);
+#endif
+#ifdef SQLITE_BIG_DBL
+  iOther |= ((sqlite_int64)1<<5);
+#endif
+#ifdef SQLITE_CASE_SENSITIVE_LIKE
+  iOther |= ((sqlite_int64)1<<6);
+#endif
+#ifdef SQLITE_CHECK_PAGES
+  iOther |= ((sqlite_int64)1<<7);
+#endif
+#ifdef SQLITE_CORE
+  iOther |= ((sqlite_int64)1<<8);
+#endif
+#ifdef SQLITE_COVERAGE_TEST
+  iOther |= ((sqlite_int64)1<<9);
+#endif
+#ifdef SQLITE_DEBUG
+  iOther |= ((sqlite_int64)1<<10);
+#endif
+#ifdef SQLITE_DISABLE_DIRSYNC
+  iOther |= ((sqlite_int64)1<<11);
+#endif
+#ifdef SQLITE_DISABLE_LFS
+  iOther |= ((sqlite_int64)1<<12);
+#endif
+#ifdef SQLITE_EBCDIC
+  iOther |= ((sqlite_int64)1<<13);
+#endif
+#ifdef SQLITE_ENABLE_ATOMIC_WRITE
+  iEnable |= ((sqlite_int64)1<<0);
+#endif
+#ifdef SQLITE_ENABLE_CEROD
+  iEnable |= ((sqlite_int64)1<<1);
+#endif
+#ifdef SQLITE_ENABLE_COLUMN_METADATA
+  iEnable |= ((sqlite_int64)1<<2);
+#endif
+#ifdef SQLITE_ENABLE_EXPENSIVE_ASSERT
+  iEnable |= ((sqlite_int64)1<<3);
+#endif
+#ifdef SQLITE_ENABLE_FTS1
+  iEnable |= ((sqlite_int64)1<<4);
+#endif
+#ifdef SQLITE_ENABLE_FTS2
+  iEnable |= ((sqlite_int64)1<<5);
+#endif
+#ifdef SQLITE_ENABLE_FTS3
+  iEnable |= ((sqlite_int64)1<<6);
+#endif
+#ifdef SQLITE_ENABLE_FTS4
+  iEnable |= ((sqlite_int64)1<<7);
+#endif
+#ifdef SQLITE_ENABLE_ICU
+  iEnable |= ((sqlite_int64)1<<8);
+#endif
+#ifdef SQLITE_ENABLE_IOTRACE
+  iEnable |= ((sqlite_int64)1<<9);
+#endif
+#ifdef SQLITE_ENABLE_LOAD_EXTENSION
+  iEnable |= ((sqlite_int64)1<<10);
+#endif
+#ifdef SQLITE_ENABLE_LOCKING_STYLE
+  iEnable |= ((sqlite_int64)1<<11);
+#endif
+#ifdef SQLITE_ENABLE_MEMORY_MANAGEMENT
+  iEnable |= ((sqlite_int64)1<<12);
+#endif
+#ifdef SQLITE_ENABLE_MEMSYS3
+  iEnable |= ((sqlite_int64)1<<13);
+#endif
+#ifdef SQLITE_ENABLE_MEMSYS5
+  iEnable |= ((sqlite_int64)1<<14);
+#endif
+#ifdef SQLITE_ENABLE_OVERSIZE_CELL_CHECK
+  iEnable |= ((sqlite_int64)1<<15);
+#endif
+#ifdef SQLITE_ENABLE_RTREE
+  iEnable |= ((sqlite_int64)1<<16);
+#endif
+#ifdef SQLITE_ENABLE_STAT2
+  iEnable |= ((sqlite_int64)1<<17);
+#endif
+#ifdef SQLITE_ENABLE_UNLOCK_NOTIFY
+  iEnable |= ((sqlite_int64)1<<18);
+#endif
+#ifdef SQLITE_ENABLE_UPDATE_DELETE_LIMIT
+  iEnable |= ((sqlite_int64)1<<19);
+#endif
+#ifdef SQLITE_EXTERN
+  iOther |= ((sqlite_int64)1<<14);
+#endif
+#ifdef SQLITE_FILE_HEADER
+  iOther |= ((sqlite_int64)1<<15);
+#endif
+#ifdef SQLITE_HAS_CODEC
+  iOther |= ((sqlite_int64)1<<16);
+#endif
+#ifdef SQLITE_HAVE_ISNAN
+  iOther |= ((sqlite_int64)1<<17);
+#endif
+#ifdef SQLITE_HOMEGROWN_RECURSIVE_MUTEX
+  iOther |= ((sqlite_int64)1<<18);
+#endif
+#ifdef SQLITE_IGNORE_AFP_LOCK_ERRORS
+  iOther |= ((sqlite_int64)1<<19);
+#endif
+#ifdef SQLITE_IGNORE_FLOCK_LOCK_ERRORS
+  iOther |= ((sqlite_int64)1<<20);
+#endif
+#ifdef SQLITE_INT64_TYPE
+  iOther |= ((sqlite_int64)1<<21);
+#endif
+#ifdef SQLITE_INTEGRITY_CHECK_ERROR_MAX
+  iOther |= ((sqlite_int64)1<<22);
+#endif
+#ifdef SQLITE_LOCK_TRACE
+  iOther |= ((sqlite_int64)1<<23);
+#endif
+#ifdef SQLITE_MALLOC_SOFT_LIMIT
+  iOther |= ((sqlite_int64)1<<24);
+#endif
+#ifdef SQLITE_MEMDEBUG
+  iOther |= ((sqlite_int64)1<<25);
+#endif
+#ifdef SQLITE_MIXED_ENDIAN_64BIT_FLOAT
+  iOther |= ((sqlite_int64)1<<26);
+#endif
+#ifdef SQLITE_MUTEX_NOOP
+  iOther |= ((sqlite_int64)1<<27);
+#endif
+#ifdef SQLITE_MUTEX_OMIT
+  iOther |= ((sqlite_int64)1<<28);
+#endif
+#ifdef SQLITE_MUTEX_OS2
+  iOther |= ((sqlite_int64)1<<29);
+#endif
+#ifdef SQLITE_MUTEX_PTHREADS
+  iOther |= ((sqlite_int64)1<<30);
+#endif
+#ifdef SQLITE_MUTEX_W32
+  iOther |= ((sqlite_int64)1<<31);
+#endif
+#ifdef SQLITE_NO_SYNC
+  iOther |= ((sqlite_int64)1<<32);
+#endif
+#ifdef SQLITE_N_COLCACHE
+  iOther |= ((sqlite_int64)1<<33);
+#endif
+#ifdef SQLITE_N_KEYWORD
+  iOther |= ((sqlite_int64)1<<34);
+#endif
+#ifdef SQLITE_OMIT_ALTERTABLE
+  iOmit |= ((sqlite_int64)1<<0);
+#endif
+#ifdef SQLITE_OMIT_ANALYZE
+  iOmit |= ((sqlite_int64)1<<1);
+#endif
+#ifdef SQLITE_OMIT_ATTACH
+  iOmit |= ((sqlite_int64)1<<2);
+#endif
+#ifdef SQLITE_OMIT_AUTHORIZATION
+  iOmit |= ((sqlite_int64)1<<3);
+#endif
+#ifdef SQLITE_OMIT_AUTOINCREMENT
+  iOmit |= ((sqlite_int64)1<<4);
+#endif
+#ifdef SQLITE_OMIT_AUTOINIT
+  iOmit |= ((sqlite_int64)1<<5);
+#endif
+#ifdef SQLITE_OMIT_AUTOVACUUM
+  iOmit |= ((sqlite_int64)1<<6);
+#endif
+#ifdef SQLITE_OMIT_BETWEEN_OPTIMIZATION
+  iOmit |= ((sqlite_int64)1<<7);
+#endif
+#ifdef SQLITE_OMIT_BLOB_LITERAL
+  iOmit |= ((sqlite_int64)1<<8);
+#endif
+#ifdef SQLITE_OMIT_BTREECOUNT
+  iOmit |= ((sqlite_int64)1<<9);
+#endif
+#ifdef SQLITE_OMIT_BUILTIN_TEST
+  iOmit |= ((sqlite_int64)1<<10);
+#endif
+#ifdef SQLITE_OMIT_CAST
+  iOmit |= ((sqlite_int64)1<<11);
+#endif
+#ifdef SQLITE_OMIT_CHECK
+  iOmit |= ((sqlite_int64)1<<12);
+#endif
+#ifdef SQLITE_OMIT_COMPLETE
+  iOmit |= ((sqlite_int64)1<<13);
+#endif
+#ifdef SQLITE_OMIT_COMPOUND_SELECT
+  iOmit |= ((sqlite_int64)1<<14);
+#endif
+#ifdef SQLITE_OMIT_DATETIME_FUNCS
+  iOmit |= ((sqlite_int64)1<<15);
+#endif
+#ifdef SQLITE_OMIT_DECLTYPE
+  iOmit |= ((sqlite_int64)1<<16);
+#endif
+#ifdef SQLITE_OMIT_DEPRECATED
+  iOmit |= ((sqlite_int64)1<<17);
+#endif
+#ifdef SQLITE_OMIT_DISKIO
+  iOmit |= ((sqlite_int64)1<<18);
+#endif
+#ifdef SQLITE_OMIT_EXPLAIN
+  iOmit |= ((sqlite_int64)1<<19);
+#endif
+#ifdef SQLITE_OMIT_FLAG_PRAGMAS
+  iOmit |= ((sqlite_int64)1<<20);
+#endif
+#ifdef SQLITE_OMIT_FLOATING_POINT
+  iOmit |= ((sqlite_int64)1<<21);
+#endif
+#ifdef SQLITE_OMIT_FOREIGN_KEY
+  iOmit |= ((sqlite_int64)1<<22);
+#endif
+#ifdef SQLITE_OMIT_GET_TABLE
+  iOmit |= ((sqlite_int64)1<<23);
+#endif
+#ifdef SQLITE_OMIT_GLOBALRECOVER
+  iOmit |= ((sqlite_int64)1<<24);
+#endif
+#ifdef SQLITE_OMIT_INCRBLOB
+  iOmit |= ((sqlite_int64)1<<25);
+#endif
+#ifdef SQLITE_OMIT_INTEGRITY_CHECK
+  iOmit |= ((sqlite_int64)1<<26);
+#endif
+#ifdef SQLITE_OMIT_LIKE_OPTIMIZATION
+  iOmit |= ((sqlite_int64)1<<27);
+#endif
+#ifdef SQLITE_OMIT_LOAD_EXTENSION
+  iOmit |= ((sqlite_int64)1<<28);
+#endif
+#ifdef SQLITE_OMIT_LOCALTIME
+  iOmit |= ((sqlite_int64)1<<29);
+#endif
+#ifdef SQLITE_OMIT_LOOKASIDE
+  iOmit |= ((sqlite_int64)1<<30);
+#endif
+#ifdef SQLITE_OMIT_MEMORYDB
+  iOmit |= ((sqlite_int64)1<<31);
+#endif
+#ifdef SQLITE_OMIT_OR_OPTIMIZATION
+  iOmit |= ((sqlite_int64)1<<32);
+#endif
+#ifdef SQLITE_OMIT_PAGER_PRAGMAS
+  iOmit |= ((sqlite_int64)1<<33);
+#endif
+#ifdef SQLITE_OMIT_PRAGMA
+  iOmit |= ((sqlite_int64)1<<34);
+#endif
+#ifdef SQLITE_OMIT_PROGRESS_CALLBACK
+  iOmit |= ((sqlite_int64)1<<35);
+#endif
+#ifdef SQLITE_OMIT_QUICKBALANCE
+  iOmit |= ((sqlite_int64)1<<36);
+#endif
+#ifdef SQLITE_OMIT_REINDEX
+  iOmit |= ((sqlite_int64)1<<37);
+#endif
+#ifdef SQLITE_OMIT_SCHEMA_PRAGMAS
+  iOmit |= ((sqlite_int64)1<<38);
+#endif
+#ifdef SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS
+  iOmit |= ((sqlite_int64)1<<39);
+#endif
+#ifdef SQLITE_OMIT_SHARED_CACHE
+  iOmit |= ((sqlite_int64)1<<40);
+#endif
+#ifdef SQLITE_OMIT_SUBQUERY
+  iOmit |= ((sqlite_int64)1<<41);
+#endif
+#ifdef SQLITE_OMIT_TCL_VARIABLE
+  iOmit |= ((sqlite_int64)1<<42);
+#endif
+#ifdef SQLITE_OMIT_TEMPDB
+  iOmit |= ((sqlite_int64)1<<43);
+#endif
+#ifdef SQLITE_OMIT_TRACE
+  iOmit |= ((sqlite_int64)1<<44);
+#endif
+#ifdef SQLITE_OMIT_TRIGGER
+  iOmit |= ((sqlite_int64)1<<45);
+#endif
+#ifdef SQLITE_OMIT_TRUNCATE_OPTIMIZATION
+  iOmit |= ((sqlite_int64)1<<46);
+#endif
+#ifdef SQLITE_OMIT_UTF16
+  iOmit |= ((sqlite_int64)1<<47);
+#endif
+#ifdef SQLITE_OMIT_VACUUM
+  iOmit |= ((sqlite_int64)1<<48);
+#endif
+#ifdef SQLITE_OMIT_VIEW
+  iOmit |= ((sqlite_int64)1<<49);
+#endif
+#ifdef SQLITE_OMIT_VIRTUALTABLE
+  iOmit |= ((sqlite_int64)1<<50);
+#endif
+#ifdef SQLITE_OMIT_WSD
+  iOmit |= ((sqlite_int64)1<<51);
+#endif
+#ifdef SQLITE_OMIT_XFER_OPT
+  iOmit |= ((sqlite_int64)1<<52);
+#endif
+#ifdef SQLITE_OS_OTHER
+  iOther |= ((sqlite_int64)1<<35);
+#endif
+#ifdef SQLITE_OS_UNIX
+  iOther |= ((sqlite_int64)1<<36);
+#endif
+#ifdef SQLITE_PERFORMANCE_TRACE
+  iOther |= ((sqlite_int64)1<<37);
+#endif
+#ifdef SQLITE_PRINT_BUF_SIZE
+  iOther |= ((sqlite_int64)1<<38);
+#endif
+#ifdef SQLITE_PRIVATE
+  iOther |= ((sqlite_int64)1<<39);
+#endif
+#ifdef SQLITE_PROXY_DEBUG
+  iOther |= ((sqlite_int64)1<<40);
+#endif
+#ifdef SQLITE_SECURE_DELETE
+  iOther |= ((sqlite_int64)1<<41);
+#endif
+#ifdef SQLITE_SMALL_STACK
+  iOther |= ((sqlite_int64)1<<42);
+#endif
+#ifdef SQLITE_SOUNDEX
+  iOther |= ((sqlite_int64)1<<43);
+#endif
+#ifdef SQLITE_SYSTEM_MALLOC
+  iOther |= ((sqlite_int64)1<<44);
+#endif
+#ifdef SQLITE_TCL
+  iOther |= ((sqlite_int64)1<<45);
+#endif
+#ifdef SQLITE_TEMP_FILE_PREFIX
+  iOther |= ((sqlite_int64)1<<46);
+#endif
+#ifdef SQLITE_TEMP_STORE
+  iOther |= ((sqlite_int64)1<<47);
+#endif
+#ifdef SQLITE_TEST
+  iOther |= ((sqlite_int64)1<<48);
+#endif
+#ifdef SQLITE_TEXT
+  iOther |= ((sqlite_int64)1<<49);
+#endif
+#ifdef SQLITE_THREADSAFE
+  iOther |= ((sqlite_int64)1<<50);
+#endif
+#ifdef SQLITE_USE_ALLOCA
+  iOther |= ((sqlite_int64)1<<51);
+#endif
+#ifdef SQLITE_VERSION
+  iOther |= ((sqlite_int64)1<<52);
+#endif
+#ifdef SQLITE_VERSION_NUMBER
+  iOther |= ((sqlite_int64)1<<53);
+#endif
+#ifdef SQLITE_ZERO_MALLOC
+  iOther |= ((sqlite_int64)1<<54);
+#endif
+
+  sqlite3_snprintf(sizeof(zOpts)-1, zOpts, 
+                   "%016llx%016llx%016llx", iEnable, iOmit, iOther);
+  return zOpts;
+}
 
 #if !defined(SQLITE_OMIT_TRACE) && defined(SQLITE_ENABLE_IOTRACE)
 /*
index 1c0a5bf52bb02e0b46587b533e8ede13884fc70b..d7860a392d2d636be73122c176db6337207630b2 100644 (file)
@@ -130,16 +130,20 @@ extern "C" {
 ** function is provided for use in DLLs since DLL users usually do not have
 ** direct access to string constants within the DLL.  ^The
 ** sqlite3_libversion_number() function returns an integer equal to
-** [SQLITE_VERSION_NUMBER].  ^The sqlite3_sourceid() function a pointer
-** to a string constant whose value is the same as the [SQLITE_SOURCE_ID]
-** C preprocessor macro.
+** [SQLITE_VERSION_NUMBER].  ^The sqlite3_sourceid() function returns 
+** a pointer to a string constant whose value is the same as the 
+** [SQLITE_SOURCE_ID] C preprocessor macro.  ^The sqlite3_compileopts() 
+** function returns a pointer to a string constant whose value describes
+** the compiler options used.
 **
-** See also: [sqlite_version()] and [sqlite_source_id()].
+** See also: [sqlite_version()], [sqlite_source_id()], 
+** and [sqlite_compile_opts()].
 */
 SQLITE_EXTERN const char sqlite3_version[];
 const char *sqlite3_libversion(void);
 const char *sqlite3_sourceid(void);
 int sqlite3_libversion_number(void);
+const char *sqlite3_compileopts(void);
 
 /*
 ** CAPI3REF: Test To See If The Library Is Threadsafe