|
|
@@ -236,6 +236,20 @@ struct sqlite3_api_routines {
|
|
|
int (*blob_reopen)(sqlite3_blob*,sqlite3_int64);
|
|
|
int (*vtab_config)(sqlite3*,int op,...);
|
|
|
int (*vtab_on_conflict)(sqlite3*);
|
|
|
+ /* Version 3.7.16 and later */
|
|
|
+ int (*close_v2)(sqlite3*);
|
|
|
+ const char *(*db_filename)(sqlite3*,const char*);
|
|
|
+ int (*db_readonly)(sqlite3*,const char*);
|
|
|
+ int (*db_release_memory)(sqlite3*);
|
|
|
+ const char *(*errstr)(int);
|
|
|
+ int (*stmt_busy)(sqlite3_stmt*);
|
|
|
+ int (*stmt_readonly)(sqlite3_stmt*);
|
|
|
+ int (*stricmp)(const char*,const char*);
|
|
|
+ int (*uri_boolean)(const char*,const char*,int);
|
|
|
+ sqlite3_int64 (*uri_int64)(const char*,const char*,sqlite3_int64);
|
|
|
+ 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*);
|
|
|
};
|
|
|
|
|
|
/*
|
|
|
@@ -439,9 +453,35 @@ struct sqlite3_api_routines {
|
|
|
#define sqlite3_blob_reopen sqlite3_api->blob_reopen
|
|
|
#define sqlite3_vtab_config sqlite3_api->vtab_config
|
|
|
#define sqlite3_vtab_on_conflict sqlite3_api->vtab_on_conflict
|
|
|
+/* Version 3.7.16 and later */
|
|
|
+#define sqlite3_close_v2 sqlite3_api->close_v2
|
|
|
+#define sqlite3_db_filename sqlite3_api->db_filename
|
|
|
+#define sqlite3_db_readonly sqlite3_api->db_readonly
|
|
|
+#define sqlite3_db_release_memory sqlite3_api->db_release_memory
|
|
|
+#define sqlite3_errstr sqlite3_api->errstr
|
|
|
+#define sqlite3_stmt_busy sqlite3_api->stmt_busy
|
|
|
+#define sqlite3_stmt_readonly sqlite3_api->stmt_readonly
|
|
|
+#define sqlite3_stricmp sqlite3_api->stricmp
|
|
|
+#define sqlite3_uri_boolean sqlite3_api->uri_boolean
|
|
|
+#define sqlite3_uri_int64 sqlite3_api->uri_int64
|
|
|
+#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
|
|
|
#endif /* SQLITE_CORE */
|
|
|
|
|
|
-#define SQLITE_EXTENSION_INIT1 const sqlite3_api_routines *sqlite3_api = 0;
|
|
|
-#define SQLITE_EXTENSION_INIT2(v) sqlite3_api = v;
|
|
|
+#ifndef SQLITE_CORE
|
|
|
+ /* This case when the file really is being compiled as a loadable
|
|
|
+ ** extension */
|
|
|
+# define SQLITE_EXTENSION_INIT1 const sqlite3_api_routines *sqlite3_api=0;
|
|
|
+# define SQLITE_EXTENSION_INIT2(v) sqlite3_api=v;
|
|
|
+# define SQLITE_EXTENSION_INIT3 \
|
|
|
+ extern const sqlite3_api_routines *sqlite3_api;
|
|
|
+#else
|
|
|
+ /* This case when the file is being statically linked into the
|
|
|
+ ** application */
|
|
|
+# define SQLITE_EXTENSION_INIT1 /*no-op*/
|
|
|
+# define SQLITE_EXTENSION_INIT2(v) (void)v; /* unused parameter */
|
|
|
+# define SQLITE_EXTENSION_INIT3 /*no-op*/
|
|
|
+#endif
|
|
|
|
|
|
#endif /* _SQLITE3EXT_H_ */
|