You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
501 lines
14 KiB
501 lines
14 KiB
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 <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>
|
|
@@ -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 */
|