aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2014-09-09 18:41:32 +0000
committerdrh <drh@noemail.net>2014-09-09 18:41:32 +0000
commit0807cc2c29593d4bd1cbe4544bacff0509d1ed0e (patch)
tree5dd4d371dafabff0a5c50ed5464de5b0938b88ab /src
parentda4ca9d19cf92628f4989d95185f3b1fa1418e6d (diff)
downloadsqlite-0807cc2c29593d4bd1cbe4544bacff0509d1ed0e.tar.gz
sqlite-0807cc2c29593d4bd1cbe4544bacff0509d1ed0e.zip
Add new interfaces to the loadable extension mechanism.
FossilOrigin-Name: 18d80cbc590165913d82056aa69ddaeea07b76ec
Diffstat (limited to 'src')
-rw-r--r--src/loadext.c15
-rw-r--r--src/sqlite3ext.h30
2 files changed, 44 insertions, 1 deletions
diff --git a/src/loadext.c b/src/loadext.c
index 05045dedb..be8262989 100644
--- a/src/loadext.c
+++ b/src/loadext.c
@@ -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
};
/*
diff --git a/src/sqlite3ext.h b/src/sqlite3ext.h
index b4baea2cc..17d6197fb 100644
--- a/src/sqlite3ext.h
+++ b/src/sqlite3ext.h
@@ -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