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

Add new interfaces to the loadable extension mechanism.

FossilOrigin-Name: 18d80cbc590165913d82056aa69ddaeea07b76ec
This commit is contained in:
drh
2014-09-09 18:41:32 +00:00
parent da4ca9d19c
commit 0807cc2c29
4 changed files with 52 additions and 12 deletions

View File

@@ -1,5 +1,5 @@
C Add\snew\sAPIs\sthat\stake\s64-bit\slength\sparameters:\nsqlite3_malloc64(),\nsqlite3_realloc64(),\nsqlite3_bind_blob64(),\nsqlite3_bind_texte64(),\nsqlite3_result_blob64(),\nand\ssqlite3_result_texte64().\nInternal\smemory\sallocation\sroutines\salso\snow\suse\s64-bit\sunsigned\slength\nparameters\sfor\ssafety.\nAlso\sadd\sthe\ssqlite3_msize()\sinterface.\nFix\sthe\ssqlite3_get_table()\sto\suse\ssqlite3_realloc64()\sto\savoid\sa\ninteger\soverflow\sproblem. C Add\snew\sinterfaces\sto\sthe\sloadable\sextension\smechanism.
D 2014-09-09T17:27:35.957 D 2014-09-09T18:41:32.385
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in cf57f673d77606ab0f2d9627ca52a9ba1464146a F Makefile.in cf57f673d77606ab0f2d9627ca52a9ba1464146a
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -189,7 +189,7 @@ F src/insert.c 0b073fade178d9dbd990bbb32b4438e50b884a06
F src/journal.c b4124532212b6952f42eb2c12fa3c25701d8ba8d F src/journal.c b4124532212b6952f42eb2c12fa3c25701d8ba8d
F src/legacy.c 87c92f4a08e2f70220e3b22a9c3b2482d36a134a F src/legacy.c 87c92f4a08e2f70220e3b22a9c3b2482d36a134a
F src/lempar.c cdf0a000315332fc9b50b62f3b5e22e080a0952b F src/lempar.c cdf0a000315332fc9b50b62f3b5e22e080a0952b
F src/loadext.c 31c2122b7dd05a179049bbf163fd4839f181cbab F src/loadext.c 0cb3e0394c21e7fc513b9e3b013f9675f4c93774
F src/main.c e48517e3da289d93ad86e8b7b4f68078df5e6e51 F src/main.c e48517e3da289d93ad86e8b7b4f68078df5e6e51
F src/malloc.c cc015821ba267ad5c91dc8761d0498a3fc3ce6ce F src/malloc.c cc015821ba267ad5c91dc8761d0498a3fc3ce6ce
F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645 F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
@@ -227,7 +227,7 @@ F src/select.c b4457526cee73c0b69fad42f799f619b1d5a8a8a
F src/shell.c 713cef4d73c05fc8e12f4960072329d767a05d50 F src/shell.c 713cef4d73c05fc8e12f4960072329d767a05d50
F src/sqlite.h.in cbb079b1d89b45d53d44aab4dc291ce2bac0a4b1 F src/sqlite.h.in cbb079b1d89b45d53d44aab4dc291ce2bac0a4b1
F src/sqlite3.rc 992c9f5fb8285ae285d6be28240a7e8d3a7f2bad F src/sqlite3.rc 992c9f5fb8285ae285d6be28240a7e8d3a7f2bad
F src/sqlite3ext.h 1f40357fb9b12a80c5a3b2b109fd249b009213d4 F src/sqlite3ext.h b8ff57953a1c160e5aa6e0f03119e90ea41fbb4d
F src/sqliteInt.h 0a9083f9d277bf8ca7e9327c01e01bd01f01a585 F src/sqliteInt.h 0a9083f9d277bf8ca7e9327c01e01bd01f01a585
F src/sqliteLimit.h 164b0e6749d31e0daa1a4589a169d31c0dec7b3d F src/sqliteLimit.h 164b0e6749d31e0daa1a4589a169d31c0dec7b3d
F src/status.c 7ac05a5c7017d0b9f0b4bcd701228b784f987158 F src/status.c 7ac05a5c7017d0b9f0b4bcd701228b784f987158
@@ -1193,10 +1193,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32 F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
P ad7063aa1a0db32cdbe71815545b2edca57d3bcc P 94954850cf2e1ec0b7f590c7f46cdc54c72558ce
R c9aabba8d6c73d7bad5e8196d2f3fcc0 R c1ce17f309170a7fa900bd5f2fa22c3a
T *branch * 64-bit-lengths
T *sym-64-bit-lengths *
T -sym-trunk *
U drh U drh
Z b65eab85daa713d0df4e10d4fe4ad4ae Z 9deb67bcd7039b69f5843b47ed73f48c

View File

@@ -1 +1 @@
94954850cf2e1ec0b7f590c7f46cdc54c72558ce 18d80cbc590165913d82056aa69ddaeea07b76ec

View File

@@ -390,7 +390,20 @@ static const sqlite3_api_routines sqlite3Apis = {
sqlite3_uri_int64, sqlite3_uri_int64,
sqlite3_uri_parameter, sqlite3_uri_parameter,
sqlite3_vsnprintf, sqlite3_vsnprintf,
sqlite3_wal_checkpoint_v2 sqlite3_wal_checkpoint_v2,
/* Version 3.8.7 and later */
sqlite3_auto_extension,
sqlite3_bind_blob64,
sqlite3_bind_texte64,
sqlite3_cancel_auto_extension,
sqlite3_load_extension,
sqlite3_malloc64,
sqlite3_msize,
sqlite3_realloc64,
sqlite3_reset_auto_extension,
sqlite3_result_blob64,
sqlite3_result_texte64,
sqlite3_strglob
}; };
/* /*

View File

@@ -250,6 +250,23 @@ struct sqlite3_api_routines {
const char *(*uri_parameter)(const char*,const char*); const char *(*uri_parameter)(const char*,const char*);
char *(*vsnprintf)(int,char*,const char*,va_list); char *(*vsnprintf)(int,char*,const char*,va_list);
int (*wal_checkpoint_v2)(sqlite3*,const char*,int,int*,int*); int (*wal_checkpoint_v2)(sqlite3*,const char*,int,int*,int*);
/* Version 3.8.7 and later */
int (*auto_extension)(void(*)(void));
int (*bind_blob64)(sqlite3_stmt*,int,const void*,sqlite3_uint64,
void(*)(void*));
int (*bind_texte64)(sqlite3_stmt*,int,const char*,sqlite3_uint64,
void(*)(void*),unsigned char);
int (*cancel_auto_extension)(void(*)(void));
int (*load_extension)(sqlite3*,const char*,const char*,char**);
void *(*malloc64)(sqlite3_uint64);
sqlite3_uint64 (*msize)(void*);
void *(*realloc64)(void*,sqlite3_uint64);
void (*reset_auto_extension)(void);
void (*result_blob64)(sqlite3_context*,const void*,sqlite3_uint64,
void(*)(void*));
void (*result_texte64)(sqlite3_context*,const char*,sqlite3_uint64,
void(*)(void*), unsigned char);
int (*strglob)(const char*,const char*);
}; };
/* /*
@@ -467,6 +484,19 @@ struct sqlite3_api_routines {
#define sqlite3_uri_parameter sqlite3_api->uri_parameter #define sqlite3_uri_parameter sqlite3_api->uri_parameter
#define sqlite3_uri_vsnprintf sqlite3_api->vsnprintf #define sqlite3_uri_vsnprintf sqlite3_api->vsnprintf
#define sqlite3_wal_checkpoint_v2 sqlite3_api->wal_checkpoint_v2 #define sqlite3_wal_checkpoint_v2 sqlite3_api->wal_checkpoint_v2
/* Version 3.8.7 and later */
#define sqlite3_auto_extension sqlite3_api->auto_extension
#define sqlite3_bind_blob64 sqlite3_api->bind_blob64
#define sqlite3_bind_texte64 sqlite3_api->bind_texte64
#define sqlite3_cancel_auto_extension sqlite3_api->cancel_auto_extension
#define sqlite3_load_extension sqlite3_api->load_extension
#define sqlite3_malloc64 sqlite3_api->malloc64
#define sqlite3_msize sqlite3_api->msize
#define sqlite3_realloc64 sqlite3_api->realloc64
#define sqlite3_reset_auto_extension sqlite3_api->reset_auto_extension
#define sqlite3_result_blob64 sqlite3_api->result_blob64
#define sqlite3_result_texte64 sqlite3_api->result_texte64
#define sqlite3_strglob sqlite3_api->strglob
#endif /* SQLITE_CORE */ #endif /* SQLITE_CORE */
#ifndef SQLITE_CORE #ifndef SQLITE_CORE