| Add initialization functions for internal usage in libsqlite3.so. |
| |
| --- /ext/misc/carray.c |
| +++ /ext/misc/carray.c |
| @@ -383,16 +383,8 @@ |
| |
| #endif /* SQLITE_OMIT_VIRTUALTABLE */ |
| |
| -#ifdef _WIN32 |
| -__declspec(dllexport) |
| -#endif |
| -int sqlite3_carray_init( |
| - sqlite3 *db, |
| - char **pzErrMsg, |
| - const sqlite3_api_routines *pApi |
| -){ |
| +int sqlite3CarrayInit(sqlite3 *db){ |
| int rc = SQLITE_OK; |
| - SQLITE_EXTENSION_INIT2(pApi); |
| #ifndef SQLITE_OMIT_VIRTUALTABLE |
| rc = sqlite3_create_module(db, "carray", &carrayModule, 0); |
| #ifdef SQLITE_TEST |
| @@ -404,3 +396,18 @@ |
| #endif /* SQLITE_OMIT_VIRTUALTABLE */ |
| return rc; |
| } |
| + |
| +#if !defined(SQLITE_CORE) || defined(SQLITE_TEST) |
| +#ifdef _WIN32 |
| +__declspec(dllexport) |
| +#endif |
| +int sqlite3_carray_init( |
| + sqlite3 *db, |
| + char **pzErrMsg, |
| + const sqlite3_api_routines *pApi |
| +){ |
| + SQLITE_EXTENSION_INIT2(pApi); |
| + (void)pzErrMsg; /* Unused parameter */ |
| + return sqlite3CarrayInit(db); |
| +} |
| +#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */ |
| --- /ext/misc/completion.c |
| +++ /ext/misc/completion.c |
| @@ -483,12 +483,13 @@ |
| return rc; |
| } |
| |
| +#if !defined(SQLITE_CORE) || defined(SQLITE_TEST) |
| #ifdef _WIN32 |
| __declspec(dllexport) |
| #endif |
| int sqlite3_completion_init( |
| - sqlite3 *db, |
| - char **pzErrMsg, |
| + sqlite3 *db, |
| + char **pzErrMsg, |
| const sqlite3_api_routines *pApi |
| ){ |
| int rc = SQLITE_OK; |
| @@ -499,3 +500,4 @@ |
| #endif |
| return rc; |
| } |
| +#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */ |
| --- /ext/misc/csv.c |
| +++ /ext/misc/csv.c |
| @@ -928,6 +928,22 @@ |
| #endif /* !defined(SQLITE_OMIT_VIRTUALTABLE) */ |
| |
| |
| +int sqlite3CsvInit(sqlite3 *db){ |
| +#ifndef SQLITE_OMIT_VIRTUALTABLE |
| + int rc; |
| + rc = sqlite3_create_module(db, "csv", &CsvModule, 0); |
| +#ifdef SQLITE_TEST |
| + if( rc==SQLITE_OK ){ |
| + rc = sqlite3_create_module(db, "csv_wr", &CsvModuleFauxWrite, 0); |
| + } |
| +#endif |
| + return rc; |
| +#else |
| + return SQLITE_OK; |
| +#endif |
| +} |
| + |
| +#if !defined(SQLITE_CORE) || defined(SQLITE_TEST) |
| #ifdef _WIN32 |
| __declspec(dllexport) |
| #endif |
| @@ -941,17 +957,8 @@ |
| char **pzErrMsg, |
| const sqlite3_api_routines *pApi |
| ){ |
| -#ifndef SQLITE_OMIT_VIRTUALTABLE |
| - int rc; |
| SQLITE_EXTENSION_INIT2(pApi); |
| - rc = sqlite3_create_module(db, "csv", &CsvModule, 0); |
| -#ifdef SQLITE_TEST |
| - if( rc==SQLITE_OK ){ |
| - rc = sqlite3_create_module(db, "csv_wr", &CsvModuleFauxWrite, 0); |
| - } |
| -#endif |
| - return rc; |
| -#else |
| - return SQLITE_OK; |
| -#endif |
| + (void)pzErrMsg; /* Unused parameter */ |
| + return sqlite3CsvInit(db); |
| } |
| +#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */ |
| --- /ext/misc/dbdata.c |
| +++ /ext/misc/dbdata.c |
| @@ -803,7 +803,7 @@ |
| /* |
| ** Invoke this routine to register the "sqlite_dbdata" virtual table module |
| */ |
| -static int sqlite3DbdataRegister(sqlite3 *db){ |
| +int sqlite3DbdataRegister(sqlite3 *db){ |
| static sqlite3_module dbdata_module = { |
| 0, /* iVersion */ |
| 0, /* xCreate */ |
| @@ -838,6 +838,7 @@ |
| return rc; |
| } |
| |
| +#if !defined(SQLITE_CORE) || defined(SQLITE_TEST) |
| #ifdef _WIN32 |
| __declspec(dllexport) |
| #endif |
| @@ -849,3 +850,4 @@ |
| SQLITE_EXTENSION_INIT2(pApi); |
| return sqlite3DbdataRegister(db); |
| } |
| +#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */ |
| --- /ext/misc/eval.c |
| +++ /ext/misc/eval.c |
| @@ -102,6 +102,20 @@ |
| } |
| |
| |
| +int sqlite3EvalInit(sqlite3 *db){ |
| + int rc = SQLITE_OK; |
| + rc = sqlite3_create_function(db, "eval", 1, |
| + SQLITE_UTF8|SQLITE_DIRECTONLY, 0, |
| + sqlEvalFunc, 0, 0); |
| + if( rc==SQLITE_OK ){ |
| + rc = sqlite3_create_function(db, "eval", 2, |
| + SQLITE_UTF8|SQLITE_DIRECTONLY, 0, |
| + sqlEvalFunc, 0, 0); |
| + } |
| + return rc; |
| +} |
| + |
| +#if !defined(SQLITE_CORE) || defined(SQLITE_TEST) |
| #ifdef _WIN32 |
| __declspec(dllexport) |
| #endif |
| @@ -110,16 +124,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, "eval", 1, |
| - SQLITE_UTF8|SQLITE_DIRECTONLY, 0, |
| - sqlEvalFunc, 0, 0); |
| - if( rc==SQLITE_OK ){ |
| - rc = sqlite3_create_function(db, "eval", 2, |
| - SQLITE_UTF8|SQLITE_DIRECTONLY, 0, |
| - sqlEvalFunc, 0, 0); |
| - } |
| - return rc; |
| + return sqlite3EvalInit(db); |
| } |
| +#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */ |
| --- /ext/misc/fileio.c |
| +++ /ext/misc/fileio.c |
| @@ -340,7 +340,7 @@ |
| ** This function does the work for the writefile() UDF. Refer to |
| ** header comments at the top of this file for details. |
| */ |
| -static int writeFile( |
| +static int writeFileContents( |
| sqlite3_context *pCtx, /* Context to return bytes written in */ |
| const char *zFile, /* File to write */ |
| sqlite3_value *pData, /* Data to write */ |
| @@ -480,10 +480,10 @@ |
| mtime = sqlite3_value_int64(argv[3]); |
| } |
| |
| - res = writeFile(context, zFile, argv[1], mode, mtime); |
| + res = writeFileContents(context, zFile, argv[1], mode, mtime); |
| if( res==1 && errno==ENOENT ){ |
| if( makeDirectory(zFile)==SQLITE_OK ){ |
| - res = writeFile(context, zFile, argv[1], mode, mtime); |
| + res = writeFileContents(context, zFile, argv[1], mode, mtime); |
| } |
| } |
| |
| @@ -970,18 +970,9 @@ |
| # define fsdirRegister(x) SQLITE_OK |
| #endif |
| |
| -#ifdef _WIN32 |
| -__declspec(dllexport) |
| -#endif |
| -int sqlite3_fileio_init( |
| - sqlite3 *db, |
| - char **pzErrMsg, |
| - const sqlite3_api_routines *pApi |
| -){ |
| +int sqlite3FileioInit(sqlite3 *db){ |
| int rc = SQLITE_OK; |
| - SQLITE_EXTENSION_INIT2(pApi); |
| - (void)pzErrMsg; /* Unused parameter */ |
| - rc = sqlite3_create_function(db, "readfile", 1, |
| + rc = sqlite3_create_function(db, "readfile", 1, |
| SQLITE_UTF8|SQLITE_DIRECTONLY, 0, |
| readfileFunc, 0, 0); |
| if( rc==SQLITE_OK ){ |
| @@ -998,3 +989,18 @@ |
| } |
| return rc; |
| } |
| + |
| +#if !defined(SQLITE_CORE) || defined(SQLITE_TEST) |
| +#ifdef _WIN32 |
| +__declspec(dllexport) |
| +#endif |
| +int sqlite3_fileio_init( |
| + sqlite3 *db, |
| + char **pzErrMsg, |
| + const sqlite3_api_routines *pApi |
| +){ |
| + SQLITE_EXTENSION_INIT2(pApi); |
| + (void)pzErrMsg; /* Unused parameter */ |
| + return sqlite3FileioInit(db); |
| +} |
| +#endif /* !defined(SQLITE_CORE) || defined(SQLITE_TEST) */ |
| --- /ext/misc/ieee754.c |
| +++ /ext/misc/ieee754.c |
| @@ -110,6 +110,20 @@ |
| } |
| |
| |
| +int sqlite3IeeeInit(sqlite3 *db){ |
| + int rc = SQLITE_OK; |
| + rc = sqlite3_create_function(db, "ieee754", 1, |
| + SQLITE_UTF8|SQLITE_INNOCUOUS, 0, |
| + ieee754func, 0, 0); |
| + if( rc==SQLITE_OK ){ |
| + rc = sqlite3_create_function(db, "ieee754", 2, |
| + SQLITE_UTF8|SQLITE_INNOCUOUS, 0, |
| + ieee754func, 0, 0); |
| + } |
| + return rc; |
| +} |
| + |
| +#if !defined(SQLITE_CORE) || defined(SQLITE_TEST) |
| #ifdef _WIN32 |
| __declspec(dllexport) |
| #endif |
| @@ -118,16 +132,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, "ieee754", 1, |
| - SQLITE_UTF8|SQLITE_INNOCUOUS, 0, |
| - ieee754func, 0, 0); |
| - if( rc==SQLITE_OK ){ |
| - rc = sqlite3_create_function(db, "ieee754", 2, |
| - SQLITE_UTF8|SQLITE_INNOCUOUS, 0, |
| - ieee754func, 0, 0); |
| - } |
| - return rc; |
| + return sqlite3IeeeInit(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/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 |
| @@ -527,7 +527,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, |
| ... |
| @@ -622,7 +622,7 @@ |
| nCol = sqlite3_column_count(pStmt); |
| z = sqlite3_sql(pStmt); |
| 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); |
| |
| /* Compute a hash over the result of the query */ |
| @@ -665,14 +665,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; |
| } |
| @@ -685,17 +685,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); |
| @@ -716,3 +707,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 <zlib.h> |
| @@ -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 <stdio.h> |
| @@ -2137,7 +2139,7 @@ |
| /* |
| ** Register the "zipfile" virtual table. |
| */ |
| -static int zipfileRegister(sqlite3 *db){ |
| +int sqlite3ZipfileInit(sqlite3 *db){ |
| static sqlite3_module zipfileModule = { |
| 1, /* iVersion */ |
| zipfileConnect, /* xCreate */ |
| @@ -2171,9 +2173,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 |
| @@ -2184,5 +2187,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 */ |