1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-14 00:22:38 +03:00

Test new api to report which options (defines) were used to compile SQLite.

FossilOrigin-Name: 84c9756993caf82710a0905ed1987d144bc764fd
This commit is contained in:
shaneh
2010-02-23 04:19:54 +00:00
parent 127f9d75e2
commit bdea6d1368
5 changed files with 434 additions and 24 deletions

View File

@@ -1,8 +1,5 @@
-----BEGIN PGP SIGNED MESSAGE----- C Test\snew\sapi\sto\sreport\swhich\soptions\s(defines)\swere\sused\sto\scompile\sSQLite.
Hash: SHA1 D 2010-02-23T04:19:55
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
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
F Makefile.in c5827ead754ab32b9585487177c93bb00b9497b3 F Makefile.in c5827ead754ab32b9585487177c93bb00b9497b3
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@@ -123,7 +120,7 @@ F src/delete.c 610dc008e88a9599f905f5cbe9577ac9c36e0581
F src/expr.c d0a345e1d8995e142bc5d9f39a97b9981d7d8f23 F src/expr.c d0a345e1d8995e142bc5d9f39a97b9981d7d8f23
F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb
F src/fkey.c e2116672a6bd610dc888e27df292ebc7999c9bb0 F src/fkey.c e2116672a6bd610dc888e27df292ebc7999c9bb0
F src/func.c 3864490a90a03ab1d657cdd04da78879c18b18d1 F src/func.c 8854b7a234b4272a78941fcc899c117d1839cd4e
F src/global.c 5a9c1e3c93213ca574786ac1caa976ce8f709105 F src/global.c 5a9c1e3c93213ca574786ac1caa976ce8f709105
F src/hash.c 458488dcc159c301b8e7686280ab209f1fb915af F src/hash.c 458488dcc159c301b8e7686280ab209f1fb915af
F src/hash.h 2894c932d84d9f892d4b4023a75e501f83050970 F src/hash.h 2894c932d84d9f892d4b4023a75e501f83050970
@@ -133,7 +130,7 @@ F src/journal.c b0ea6b70b532961118ab70301c00a33089f9315c
F src/legacy.c 16f385490f377c2c80a6c7357391d499087defed F src/legacy.c 16f385490f377c2c80a6c7357391d499087defed
F src/lempar.c 7f026423f4d71d989e719a743f98a1cbd4e6d99e F src/lempar.c 7f026423f4d71d989e719a743f98a1cbd4e6d99e
F src/loadext.c 1c7a61ce1281041f437333f366a96aa0d29bb581 F src/loadext.c 1c7a61ce1281041f437333f366a96aa0d29bb581
F src/main.c 36c1c11ee2677ae247e0c947f9293749ee5ac85f F src/main.c e3e88f01f0f3555b837c867f6cdb9342a5ea3333
F src/malloc.c 5fa175797f982b178eaf38afba9c588a866be729 F src/malloc.c 5fa175797f982b178eaf38afba9c588a866be729
F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645 F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
F src/mem1.c 86f33483a343873bab8ae1b648c2eac55462da74 F src/mem1.c 86f33483a343873bab8ae1b648c2eac55462da74
@@ -168,7 +165,7 @@ F src/resolve.c a1648d98e869937b29f4f697461fe4d60f220a7b
F src/rowset.c 69afa95a97c524ba6faf3805e717b5b7ae85a697 F src/rowset.c 69afa95a97c524ba6faf3805e717b5b7ae85a697
F src/select.c 0109b993c360d649857523abb72919e1794f9b45 F src/select.c 0109b993c360d649857523abb72919e1794f9b45
F src/shell.c 31cd555125a1fda4a6d8dce019690f043a8e5d75 F src/shell.c 31cd555125a1fda4a6d8dce019690f043a8e5d75
F src/sqlite.h.in 16f33c1ceb971bfa7a04a73039947630f445146e F src/sqlite.h.in 451a5a8bb2f6183ac50ae65f45f6e2b8ef4c6439
F src/sqlite3ext.h 69dfb8116af51b84a029cddb3b35062354270c89 F src/sqlite3ext.h 69dfb8116af51b84a029cddb3b35062354270c89
F src/sqliteInt.h d5fe1c8335b5bf376639837fa42124327cdb6767 F src/sqliteInt.h d5fe1c8335b5bf376639837fa42124327cdb6767
F src/sqliteLimit.h 3afab2291762b5d09ae20c18feb8e9fa935a60a6 F src/sqliteLimit.h 3afab2291762b5d09ae20c18feb8e9fa935a60a6
@@ -794,14 +791,11 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
P c4401fc93b66c5339422d7e765a4a32b1ef96bdb P 6d910245ad0097521cf1619449cc3d202137b8b8
R 1b44bf57e7d9a663688d30603c70b44c R dedbbaae7790d6d9129d67a846293910
U drh T *bgcolor * pink
Z 75784795cda6fd26f0b8feb0805d2536 T *branch * compile_opts
-----BEGIN PGP SIGNATURE----- T *sym-compile_opts *
Version: GnuPG v1.4.6 (GNU/Linux) T -sym-trunk *
U shaneh
iD8DBQFLgzOYoxKgR168RlERAgluAJ9q3mIeRrQvfpzpmiNDDWtRun1WrQCeME9w Z a5cfd4374a14e6e3e3c31ae8396a940a
x+Fdmmhc/ksLrbX58/ixhCk=
=d2xc
-----END PGP SIGNATURE-----

View File

@@ -1 +1 @@
6d910245ad0097521cf1619449cc3d202137b8b8 84c9756993caf82710a0905ed1987d144bc764fd

View File

@@ -774,6 +774,21 @@ static void sourceidFunc(
sqlite3_result_text(context, sqlite3_sourceid(), -1, SQLITE_STATIC); 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 /* Array for converting from half-bytes (nybbles) into ASCII hex
** digits. */ ** digits. */
static const char hexdigits[] = { static const char hexdigits[] = {
@@ -1505,6 +1520,7 @@ void sqlite3RegisterGlobalFunctions(void){
FUNCTION(nullif, 2, 0, 1, nullifFunc ), FUNCTION(nullif, 2, 0, 1, nullifFunc ),
FUNCTION(sqlite_version, 0, 0, 0, versionFunc ), FUNCTION(sqlite_version, 0, 0, 0, versionFunc ),
FUNCTION(sqlite_source_id, 0, 0, 0, sourceidFunc ), FUNCTION(sqlite_source_id, 0, 0, 0, sourceidFunc ),
FUNCTION(sqlite_compile_opts,0, 0, 0, compileoptsFunc ),
FUNCTION(quote, 1, 0, 0, quoteFunc ), FUNCTION(quote, 1, 0, 0, quoteFunc ),
FUNCTION(last_insert_rowid, 0, 0, 0, last_insert_rowid), FUNCTION(last_insert_rowid, 0, 0, 0, last_insert_rowid),
FUNCTION(changes, 0, 0, 0, changes ), FUNCTION(changes, 0, 0, 0, changes ),

View File

@@ -36,6 +36,402 @@ const char *sqlite3_libversion(void){ return sqlite3_version; }
const char *sqlite3_sourceid(void){ return SQLITE_SOURCE_ID; } const char *sqlite3_sourceid(void){ return SQLITE_SOURCE_ID; }
int sqlite3_libversion_number(void){ return SQLITE_VERSION_NUMBER; } int sqlite3_libversion_number(void){ return SQLITE_VERSION_NUMBER; }
int sqlite3_threadsafe(void){ return SQLITE_THREADSAFE; } 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) #if !defined(SQLITE_OMIT_TRACE) && defined(SQLITE_ENABLE_IOTRACE)
/* /*

View File

@@ -130,16 +130,20 @@ extern "C" {
** function is provided for use in DLLs since DLL users usually do not have ** function is provided for use in DLLs since DLL users usually do not have
** direct access to string constants within the DLL. ^The ** direct access to string constants within the DLL. ^The
** sqlite3_libversion_number() function returns an integer equal to ** sqlite3_libversion_number() function returns an integer equal to
** [SQLITE_VERSION_NUMBER]. ^The sqlite3_sourceid() function a pointer ** [SQLITE_VERSION_NUMBER]. ^The sqlite3_sourceid() function returns
** to a string constant whose value is the same as the [SQLITE_SOURCE_ID] ** a pointer to a string constant whose value is the same as the
** C preprocessor macro. ** [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[]; SQLITE_EXTERN const char sqlite3_version[];
const char *sqlite3_libversion(void); const char *sqlite3_libversion(void);
const char *sqlite3_sourceid(void); const char *sqlite3_sourceid(void);
int sqlite3_libversion_number(void); int sqlite3_libversion_number(void);
const char *sqlite3_compileopts(void);
/* /*
** CAPI3REF: Test To See If The Library Is Threadsafe ** CAPI3REF: Test To See If The Library Is Threadsafe