/* ** Enable SQLite debug assertions if requested */ #ifndef SQLITE_DEBUG #if defined(SQLITE_ENABLE_DEBUG) && (SQLITE_ENABLE_DEBUG == 1) #define SQLITE_DEBUG 1 #endif #endif /* ** To enable the extension functions define SQLITE_ENABLE_EXTFUNC on compiling this module ** To enable the reading CSV files define SQLITE_ENABLE_CSV on compiling this module ** To enable the SHA3 support define SQLITE_ENABLE_SHA3 on compiling this module ** To enable the CARRAY support define SQLITE_ENABLE_CARRAY on compiling this module ** To enable the FILEIO support define SQLITE_ENABLE_FILEIO on compiling this module ** To enable the SERIES support define SQLITE_ENABLE_SERIES on compiling this module */ #if defined(SQLITE_ENABLE_EXTFUNC) || defined(SQLITE_ENABLE_CSV) || defined(SQLITE_ENABLE_SHA3) || defined(SQLITE_ENABLE_CARRAY) || defined(SQLITE_ENABLE_FILEIO) || defined(SQLITE_ENABLE_SERIES) #define sqlite3_open sqlite3_open_internal #define sqlite3_open16 sqlite3_open16_internal #define sqlite3_open_v2 sqlite3_open_v2_internal #endif /* ** Enable the user authentication feature */ #ifndef SQLITE_USER_AUTHENTICATION #define SQLITE_USER_AUTHENTICATION 1 #endif #include "sqlite3.c" #ifdef SQLITE_USER_AUTHENTICATION #include "sha2.h" #include "sha2.c" #include "userauth.c" #endif #if defined(SQLITE_ENABLE_EXTFUNC) || defined(SQLITE_ENABLE_CSV) || defined(SQLITE_ENABLE_SHA3) || defined(SQLITE_ENABLE_CARRAY) || defined(SQLITE_ENABLE_FILEIO) || defined(SQLITE_ENABLE_SERIES) #undef sqlite3_open #undef sqlite3_open16 #undef sqlite3_open_v2 #endif #ifndef SQLITE_OMIT_DISKIO #ifdef SQLITE_HAS_CODEC /* ** Get the codec argument for this pager */ void* mySqlite3PagerGetCodec( Pager *pPager ){ #if (SQLITE_VERSION_NUMBER >= 3006016) return sqlite3PagerGetCodec(pPager); #else return (pPager->xCodec) ? pPager->pCodecArg : NULL; #endif } /* ** Set the codec argument for this pager */ void mySqlite3PagerSetCodec( Pager *pPager, void *(*xCodec)(void*,void*,Pgno,int), void (*xCodecSizeChng)(void*,int,int), void (*xCodecFree)(void*), void *pCodec ){ sqlite3PagerSetCodec(pPager, xCodec, xCodecSizeChng, xCodecFree, pCodec); } #include "rijndael.c" #include "codec.c" #include "codecext.c" #endif #endif /* ** Extension functions */ #ifdef SQLITE_ENABLE_EXTFUNC #include "extensionfunctions.c" #endif /* ** CSV import */ #ifdef SQLITE_ENABLE_CSV #include "csv.c" #endif /* ** SHA3 */ #ifdef SQLITE_ENABLE_SHA3 #include "shathree.c" #endif /* ** CARRAY */ #ifdef SQLITE_ENABLE_CARRAY #include "carray.c" #endif /* ** FILEIO */ #ifdef SQLITE_ENABLE_FILEIO #include "fileio.c" #endif /* ** SERIES */ #ifdef SQLITE_ENABLE_SERIES #include "series.c" #endif #if defined(SQLITE_ENABLE_EXTFUNC) || defined(SQLITE_ENABLE_CSV) || defined(SQLITE_ENABLE_SHA3) || defined(SQLITE_ENABLE_CARRAY) || defined(SQLITE_ENABLE_FILEIO) || defined(SQLITE_ENABLE_SERIES) static void registerAllExtensions(sqlite3 *db, char **pzErrMsg, const sqlite3_api_routines *pApi) { #ifdef SQLITE_ENABLE_EXTFUNC RegisterExtensionFunctions(db); #endif #ifdef SQLITE_ENABLE_CSV sqlite3_csv_init(db, NULL, NULL); #endif #ifdef SQLITE_ENABLE_SHA3 sqlite3_shathree_init(db, NULL, NULL); #endif #ifdef SQLITE_ENABLE_CARRAY sqlite3_carray_init(db, NULL, NULL); #endif #ifdef SQLITE_ENABLE_FILEIO sqlite3_fileio_init(db, NULL, NULL); #endif #ifdef SQLITE_ENABLE_SERIES sqlite3_series_init(db, NULL, NULL); #endif } SQLITE_API int sqlite3_open( const char *filename, /* Database filename (UTF-8) */ sqlite3 **ppDb /* OUT: SQLite db handle */ ) { int ret = sqlite3_open_internal(filename, ppDb); if (ret == 0) { registerAllExtensions(*ppDb, NULL, NULL); } return ret; } SQLITE_API int sqlite3_open16( const void *filename, /* Database filename (UTF-16) */ sqlite3 **ppDb /* OUT: SQLite db handle */ ) { int ret = sqlite3_open16_internal(filename, ppDb); if (ret == 0) { registerAllExtensions(*ppDb, NULL, NULL); } return ret; } SQLITE_API int sqlite3_open_v2( const char *filename, /* Database filename (UTF-8) */ sqlite3 **ppDb, /* OUT: SQLite db handle */ int flags, /* Flags */ const char *zVfs /* Name of VFS module to use */ ) { int ret = sqlite3_open_v2_internal(filename, ppDb, flags, zVfs); if (ret == 0) { registerAllExtensions(*ppDb, NULL, NULL); } return ret; } #endif