]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Add new interfaces to the loadable extension mechanism.
authordrh <drh@noemail.net>
Tue, 9 Sep 2014 18:41:32 +0000 (18:41 +0000)
committerdrh <drh@noemail.net>
Tue, 9 Sep 2014 18:41:32 +0000 (18:41 +0000)
FossilOrigin-Name: 18d80cbc590165913d82056aa69ddaeea07b76ec

manifest
manifest.uuid
src/loadext.c
src/sqlite3ext.h

index ae18c40673195db511124052e3b81bee2d6df7be..c4063387f4d7156a6cb988d2dab96f9e4c2c83b8 100644 (file)
--- a/manifest
+++ b/manifest
@@ -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.
-D 2014-09-09T17:27:35.957
+C Add\snew\sinterfaces\sto\sthe\sloadable\sextension\smechanism.
+D 2014-09-09T18:41:32.385
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in cf57f673d77606ab0f2d9627ca52a9ba1464146a
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -189,7 +189,7 @@ F src/insert.c 0b073fade178d9dbd990bbb32b4438e50b884a06
 F src/journal.c b4124532212b6952f42eb2c12fa3c25701d8ba8d
 F src/legacy.c 87c92f4a08e2f70220e3b22a9c3b2482d36a134a
 F src/lempar.c cdf0a000315332fc9b50b62f3b5e22e080a0952b
-F src/loadext.c 31c2122b7dd05a179049bbf163fd4839f181cbab
+F src/loadext.c 0cb3e0394c21e7fc513b9e3b013f9675f4c93774
 F src/main.c e48517e3da289d93ad86e8b7b4f68078df5e6e51
 F src/malloc.c cc015821ba267ad5c91dc8761d0498a3fc3ce6ce
 F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
@@ -227,7 +227,7 @@ F src/select.c b4457526cee73c0b69fad42f799f619b1d5a8a8a
 F src/shell.c 713cef4d73c05fc8e12f4960072329d767a05d50
 F src/sqlite.h.in cbb079b1d89b45d53d44aab4dc291ce2bac0a4b1
 F src/sqlite3.rc 992c9f5fb8285ae285d6be28240a7e8d3a7f2bad
-F src/sqlite3ext.h 1f40357fb9b12a80c5a3b2b109fd249b009213d4
+F src/sqlite3ext.h b8ff57953a1c160e5aa6e0f03119e90ea41fbb4d
 F src/sqliteInt.h 0a9083f9d277bf8ca7e9327c01e01bd01f01a585
 F src/sqliteLimit.h 164b0e6749d31e0daa1a4589a169d31c0dec7b3d
 F src/status.c 7ac05a5c7017d0b9f0b4bcd701228b784f987158
@@ -1193,10 +1193,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P ad7063aa1a0db32cdbe71815545b2edca57d3bcc
-R c9aabba8d6c73d7bad5e8196d2f3fcc0
-T *branch * 64-bit-lengths
-T *sym-64-bit-lengths *
-T -sym-trunk *
+P 94954850cf2e1ec0b7f590c7f46cdc54c72558ce
+R c1ce17f309170a7fa900bd5f2fa22c3a
 U drh
-Z b65eab85daa713d0df4e10d4fe4ad4ae
+Z 9deb67bcd7039b69f5843b47ed73f48c
index f3484cced1db0ac5d3280401bc0e5dac0bf5a94d..3f9cdc63c82c583d13f2c7de1a3e305a22700060 100644 (file)
@@ -1 +1 @@
-94954850cf2e1ec0b7f590c7f46cdc54c72558ce
\ No newline at end of file
+18d80cbc590165913d82056aa69ddaeea07b76ec
\ No newline at end of file
index 05045dedb387bc599483c91e56028c88b1181d6d..be8262989a593401779ba82b1982656ff00bcd19 100644 (file)
@@ -390,7 +390,20 @@ static const sqlite3_api_routines sqlite3Apis = {
   sqlite3_uri_int64,
   sqlite3_uri_parameter,
   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
 };
 
 /*
index b4baea2cc5fdd7adbc66787a6cc22aa655db1098..17d6197fb7e25e7eecb70f7d328c842cf47f17b9 100644 (file)
@@ -250,6 +250,23 @@ struct sqlite3_api_routines {
   const char *(*uri_parameter)(const char*,const char*);
   char *(*vsnprintf)(int,char*,const char*,va_list);
   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_vsnprintf          sqlite3_api->vsnprintf
 #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 */
 
 #ifndef SQLITE_CORE