Add initialization functions for internal usage in libsqlite3.so. SQLite revision: acd63062eb06748bfe9e4886639e4f2b54ea6a496a83f10716abbaba4115500b --- /ext/misc/nextchar.c +++ /ext/misc/nextchar.c @@ -286,17 +286,8 @@ sqlite3_free(c.aResult); } -#ifdef _WIN32 -__declspec(dllexport) -#endif -int sqlite3_nextchar_init( - sqlite3 *db, - char **pzErrMsg, - const sqlite3_api_routines *pApi -){ +int sqlite3NextcharInit(sqlite3 *db){ int rc = SQLITE_OK; - SQLITE_EXTENSION_INIT2(pApi); - (void)pzErrMsg; /* Unused parameter */ rc = sqlite3_create_function(db, "next_char", 3, SQLITE_UTF8|SQLITE_INNOCUOUS, 0, nextCharFunc, 0, 0); @@ -312,3 +303,18 @@ } return rc; } + +#if !defined(SQLITE_CORE) || defined(SQLITE_TEST) +#ifdef _WIN32 +__declspec(dllexport) +#endif +int sqlite3_nextchar_init( + sqlite3 *db, + char **pzErrMsg, + const sqlite3_api_routines *pApi +){ + SQLITE_EXTENSION_INIT2(pApi); + (void)pzErrMsg; /* Unused parameter */ + return sqlite3NextcharInit(db); +} +#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */ --- /ext/misc/percentile.c +++ /ext/misc/percentile.c @@ -202,6 +202,15 @@ } +int sqlite3PercentileInit(sqlite3 *db){ + int rc = SQLITE_OK; + rc = sqlite3_create_function(db, "percentile", 2, + SQLITE_UTF8|SQLITE_INNOCUOUS, 0, + 0, percentStep, percentFinal); + return rc; +} + +#if !defined(SQLITE_CORE) || defined(SQLITE_TEST) #ifdef _WIN32 __declspec(dllexport) #endif @@ -210,11 +219,8 @@ char **pzErrMsg, const sqlite3_api_routines *pApi ){ - int rc = SQLITE_OK; SQLITE_EXTENSION_INIT2(pApi); (void)pzErrMsg; /* Unused parameter */ - rc = sqlite3_create_function(db, "percentile", 2, - SQLITE_UTF8|SQLITE_INNOCUOUS, 0, - 0, percentStep, percentFinal); - return rc; + return sqlite3PercentileInit(db); } +#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */ --- /ext/misc/regexp.c +++ /ext/misc/regexp.c @@ -740,10 +740,18 @@ } } +int sqlite3RegexpInit(sqlite3 *db){ + int rc = SQLITE_OK; + rc = sqlite3_create_function(db, "regexp", 2, SQLITE_UTF8|SQLITE_INNOCUOUS, + 0, re_sql_func, 0, 0); + return rc; +} + /* ** Invoke this routine to register the regexp() function with the ** SQLite database connection. */ +#if !defined(SQLITE_CORE) || defined(SQLITE_TEST) #ifdef _WIN32 __declspec(dllexport) #endif @@ -752,9 +760,8 @@ char **pzErrMsg, const sqlite3_api_routines *pApi ){ - int rc = SQLITE_OK; SQLITE_EXTENSION_INIT2(pApi); - rc = sqlite3_create_function(db, "regexp", 2, SQLITE_UTF8|SQLITE_INNOCUOUS, - 0, re_sql_func, 0, 0); - return rc; + (void)pzErrMsg; /* Unused parameter */ + return sqlite3RegexpInit(db); } +#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */ --- /ext/misc/series.c +++ /ext/misc/series.c @@ -423,6 +423,15 @@ #endif /* SQLITE_OMIT_VIRTUALTABLE */ +int sqlite3SeriesInit(sqlite3 *db){ + int rc = SQLITE_OK; +#ifndef SQLITE_OMIT_VIRTUALTABLE + rc = sqlite3_create_module(db, "generate_series", &seriesModule, 0); +#endif + return rc; +} + +#if !defined(SQLITE_CORE) || defined(SQLITE_TEST) #ifdef _WIN32 __declspec(dllexport) #endif @@ -431,7 +440,6 @@ char **pzErrMsg, const sqlite3_api_routines *pApi ){ - int rc = SQLITE_OK; SQLITE_EXTENSION_INIT2(pApi); #ifndef SQLITE_OMIT_VIRTUALTABLE if( sqlite3_libversion_number()<3008012 ){ @@ -439,7 +447,7 @@ "generate_series() requires SQLite 3.8.12 or later"); return SQLITE_ERROR; } - rc = sqlite3_create_module(db, "generate_series", &seriesModule, 0); #endif - return rc; + return sqlite3SeriesInit(db); } +#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */ --- /ext/misc/sha1.c +++ /ext/misc/sha1.c @@ -175,7 +175,7 @@ } /* Compute a string using sqlite3_vsnprintf() and hash it */ -static void hash_step_vformat( +static void sha1_hash_step_vformat( SHA1Context *p, /* Add content to this context */ const char *zFormat, ... @@ -306,7 +306,7 @@ nCol = sqlite3_column_count(pStmt); z = sqlite3_sql(pStmt); n = (int)strlen(z); - hash_step_vformat(&cx,"S%d:",n); + sha1_hash_step_vformat(&cx,"S%d:",n); hash_step(&cx,(unsigned char*)z,n); /* Compute a hash over the result of the query */ @@ -349,14 +349,14 @@ case SQLITE_TEXT: { int n2 = sqlite3_column_bytes(pStmt, i); const unsigned char *z2 = sqlite3_column_text(pStmt, i); - hash_step_vformat(&cx,"T%d:",n2); + sha1_hash_step_vformat(&cx,"T%d:",n2); hash_step(&cx, z2, n2); break; } case SQLITE_BLOB: { int n2 = sqlite3_column_bytes(pStmt, i); const unsigned char *z2 = sqlite3_column_blob(pStmt, i); - hash_step_vformat(&cx,"B%d:",n2); + sha1_hash_step_vformat(&cx,"B%d:",n2); hash_step(&cx, z2, n2); break; } @@ -370,6 +370,20 @@ } +int sqlite3ShaInit(sqlite3 *db){ + int rc = SQLITE_OK; + rc = sqlite3_create_function(db, "sha1", 1, + SQLITE_UTF8 | SQLITE_INNOCUOUS | SQLITE_DETERMINISTIC, + 0, sha1Func, 0, 0); + if( rc==SQLITE_OK ){ + rc = sqlite3_create_function(db, "sha1_query", 1, + SQLITE_UTF8|SQLITE_DIRECTONLY, 0, + sha1QueryFunc, 0, 0); + } + return rc; +} + +#if !defined(SQLITE_CORE) || defined(SQLITE_TEST) #ifdef _WIN32 __declspec(dllexport) #endif @@ -378,16 +392,8 @@ char **pzErrMsg, const sqlite3_api_routines *pApi ){ - int rc = SQLITE_OK; SQLITE_EXTENSION_INIT2(pApi); (void)pzErrMsg; /* Unused parameter */ - rc = sqlite3_create_function(db, "sha1", 1, - SQLITE_UTF8 | SQLITE_INNOCUOUS | SQLITE_DETERMINISTIC, - 0, sha1Func, 0, 0); - if( rc==SQLITE_OK ){ - rc = sqlite3_create_function(db, "sha1_query", 1, - SQLITE_UTF8|SQLITE_DIRECTONLY, 0, - sha1QueryFunc, 0, 0); - } - return rc; + return sqlite3ShaInit(db); } +#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */ --- /ext/misc/shathree.c +++ /ext/misc/shathree.c @@ -530,7 +530,7 @@ /* Compute a string using sqlite3_vsnprintf() with a maximum length ** of 50 bytes and add it to the hash. */ -static void hash_step_vformat( +static void sha3_hash_step_vformat( SHA3Context *p, /* Add content to this context */ const char *zFormat, ... @@ -626,7 +626,7 @@ z = sqlite3_sql(pStmt); if( z ){ n = (int)strlen(z); - hash_step_vformat(&cx,"S%d:",n); + sha3_hash_step_vformat(&cx,"S%d:",n); SHA3Update(&cx,(unsigned char*)z,n); } @@ -670,14 +670,14 @@ case SQLITE_TEXT: { int n2 = sqlite3_column_bytes(pStmt, i); const unsigned char *z2 = sqlite3_column_text(pStmt, i); - hash_step_vformat(&cx,"T%d:",n2); + sha3_hash_step_vformat(&cx,"T%d:",n2); SHA3Update(&cx, z2, n2); break; } case SQLITE_BLOB: { int n2 = sqlite3_column_bytes(pStmt, i); const unsigned char *z2 = sqlite3_column_blob(pStmt, i); - hash_step_vformat(&cx,"B%d:",n2); + sha3_hash_step_vformat(&cx,"B%d:",n2); SHA3Update(&cx, z2, n2); break; } @@ -690,17 +690,8 @@ } -#ifdef _WIN32 -__declspec(dllexport) -#endif -int sqlite3_shathree_init( - sqlite3 *db, - char **pzErrMsg, - const sqlite3_api_routines *pApi -){ +int sqlite3ShathreeInit(sqlite3 *db){ int rc = SQLITE_OK; - SQLITE_EXTENSION_INIT2(pApi); - (void)pzErrMsg; /* Unused parameter */ rc = sqlite3_create_function(db, "sha3", 1, SQLITE_UTF8 | SQLITE_INNOCUOUS | SQLITE_DETERMINISTIC, 0, sha3Func, 0, 0); @@ -721,3 +712,18 @@ } return rc; } + +#if !defined(SQLITE_CORE) || defined(SQLITE_TEST) +#ifdef _WIN32 +__declspec(dllexport) +#endif +int sqlite3_shathree_init( + sqlite3 *db, + char **pzErrMsg, + const sqlite3_api_routines *pApi +){ + SQLITE_EXTENSION_INIT2(pApi); + (void)pzErrMsg; /* Unused parameter */ + return sqlite3ShathreeInit(db); +} +#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */ --- /ext/misc/sqlar.c +++ /ext/misc/sqlar.c @@ -14,6 +14,8 @@ ** for working with sqlar archives and used by the shell tool's built-in ** sqlar support. */ +#ifdef SQLITE_HAVE_ZLIB + #include "sqlite3ext.h" SQLITE_EXTENSION_INIT1 #include @@ -101,6 +103,20 @@ } +int sqlite3SqlarInit(sqlite3 *db){ + int rc = SQLITE_OK; + rc = sqlite3_create_function(db, "sqlar_compress", 1, + SQLITE_UTF8|SQLITE_INNOCUOUS, 0, + sqlarCompressFunc, 0, 0); + if( rc==SQLITE_OK ){ + rc = sqlite3_create_function(db, "sqlar_uncompress", 2, + SQLITE_UTF8|SQLITE_INNOCUOUS, 0, + sqlarUncompressFunc, 0, 0); + } + return rc; +} + +#if !defined(SQLITE_CORE) || defined(SQLITE_TEST) #ifdef _WIN32 __declspec(dllexport) #endif @@ -109,16 +125,10 @@ char **pzErrMsg, const sqlite3_api_routines *pApi ){ - int rc = SQLITE_OK; SQLITE_EXTENSION_INIT2(pApi); (void)pzErrMsg; /* Unused parameter */ - rc = sqlite3_create_function(db, "sqlar_compress", 1, - SQLITE_UTF8|SQLITE_INNOCUOUS, 0, - sqlarCompressFunc, 0, 0); - if( rc==SQLITE_OK ){ - rc = sqlite3_create_function(db, "sqlar_uncompress", 2, - SQLITE_UTF8|SQLITE_INNOCUOUS, 0, - sqlarUncompressFunc, 0, 0); - } - return rc; + return sqlite3SqlarInit(db); } +#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */ + +#endif /* SQLITE_HAVE_ZLIB */ --- /ext/misc/totype.c +++ /ext/misc/totype.c @@ -491,17 +491,8 @@ #pragma warning(default: 4748) #endif -#ifdef _WIN32 -__declspec(dllexport) -#endif -int sqlite3_totype_init( - sqlite3 *db, - char **pzErrMsg, - const sqlite3_api_routines *pApi -){ +int sqlite3TotypeInit(sqlite3 *db){ int rc = SQLITE_OK; - SQLITE_EXTENSION_INIT2(pApi); - (void)pzErrMsg; /* Unused parameter */ rc = sqlite3_create_function(db, "tointeger", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC | SQLITE_INNOCUOUS, 0, tointegerFunc, 0, 0); @@ -512,3 +503,18 @@ } return rc; } + +#if !defined(SQLITE_CORE) || defined(SQLITE_TEST) +#ifdef _WIN32 +__declspec(dllexport) +#endif +int sqlite3_totype_init( + sqlite3 *db, + char **pzErrMsg, + const sqlite3_api_routines *pApi +){ + SQLITE_EXTENSION_INIT2(pApi); + (void)pzErrMsg; /* Unused parameter */ + return sqlite3TotypeInit(db); +} +#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */ --- /ext/misc/uint.c +++ /ext/misc/uint.c @@ -78,6 +78,11 @@ return (nKey1 - i) - (nKey2 - j); } +int sqlite3UintInit(sqlite3 *db){ + return sqlite3_create_collation(db, "UINT", SQLITE_UTF8, 0, uintCollFunc); +} + +#if !defined(SQLITE_CORE) || defined(SQLITE_TEST) #ifdef _WIN32 __declspec(dllexport) #endif @@ -88,5 +93,6 @@ ){ SQLITE_EXTENSION_INIT2(pApi); (void)pzErrMsg; /* Unused parameter */ - return sqlite3_create_collation(db, "uint", SQLITE_UTF8, 0, uintCollFunc); + return sqlite3UintInit(db); } +#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */ --- /ext/misc/uuid.c +++ /ext/misc/uuid.c @@ -206,21 +206,12 @@ sqlite3_result_blob(context, pBlob, 16, SQLITE_TRANSIENT); } -#ifdef _WIN32 -__declspec(dllexport) -#endif -int sqlite3_uuid_init( - sqlite3 *db, - char **pzErrMsg, - const sqlite3_api_routines *pApi -){ +int sqlite3UuidInit(sqlite3 *db){ int rc = SQLITE_OK; - SQLITE_EXTENSION_INIT2(pApi); - (void)pzErrMsg; /* Unused parameter */ rc = sqlite3_create_function(db, "uuid", 0, SQLITE_UTF8|SQLITE_INNOCUOUS, 0, sqlite3UuidFunc, 0, 0); if( rc==SQLITE_OK ){ - rc = sqlite3_create_function(db, "uuid_str", 1, + rc = sqlite3_create_function(db, "uuid_str", 1, SQLITE_UTF8|SQLITE_INNOCUOUS|SQLITE_DETERMINISTIC, 0, sqlite3UuidStrFunc, 0, 0); } @@ -231,3 +222,18 @@ } return rc; } + +#if !defined(SQLITE_CORE) || defined(SQLITE_TEST) +#ifdef _WIN32 +__declspec(dllexport) +#endif +int sqlite3_uuid_init( + sqlite3 *db, + char **pzErrMsg, + const sqlite3_api_routines *pApi +){ + SQLITE_EXTENSION_INIT2(pApi); + (void)pzErrMsg; /* Unused parameter */ + return sqlite3UuidInit(db); +} +#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */ --- /ext/misc/zipfile.c +++ /ext/misc/zipfile.c @@ -24,6 +24,8 @@ ** * No support for zip64 extensions ** * Only the "inflate/deflate" (zlib) compression method is supported */ +#ifdef SQLITE_HAVE_ZLIB + #include "sqlite3ext.h" SQLITE_EXTENSION_INIT1 #include @@ -2139,7 +2141,7 @@ /* ** Register the "zipfile" virtual table. */ -static int zipfileRegister(sqlite3 *db){ +int sqlite3ZipfileInit(sqlite3 *db){ static sqlite3_module zipfileModule = { 1, /* iVersion */ zipfileConnect, /* xCreate */ @@ -2173,9 +2175,10 @@ return rc; } #else /* SQLITE_OMIT_VIRTUALTABLE */ -# define zipfileRegister(x) SQLITE_OK +# define sqlite3ZipfileInit(x) SQLITE_OK #endif +#if !defined(SQLITE_CORE) || defined(SQLITE_TEST) #ifdef _WIN32 __declspec(dllexport) #endif @@ -2186,5 +2189,8 @@ ){ SQLITE_EXTENSION_INIT2(pApi); (void)pzErrMsg; /* Unused parameter */ - return zipfileRegister(db); + return sqlite3ZipfileInit(db); } +#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */ + +#endif /* SQLITE_HAVE_ZLIB */