Fixes for extension loading
This commit is contained in:
@@ -181,6 +181,9 @@ static int control(
|
||||
case CMD_SQL_EXEC_SCRIPT:
|
||||
sql_exec_script(driver_data, buf, len);
|
||||
break;
|
||||
case CMD_ENABLE_LOAD_EXTENSION:
|
||||
enable_load_extension(driver_data, buf, len);
|
||||
break;
|
||||
default:
|
||||
unknown(driver_data, buf, len);
|
||||
}
|
||||
@@ -243,6 +246,14 @@ static inline int output_ok(sqlite3_drv_t *drv) {
|
||||
return driver_output_term(drv->port, spec, sizeof(spec) / sizeof(spec[0]));
|
||||
}
|
||||
|
||||
static int enable_load_extension(sqlite3_drv_t* drv, char *buf,
|
||||
int len) {
|
||||
char enable = buf[0];
|
||||
sqlite3_enable_load_extension(drv->db, (int) enable);
|
||||
output_ok(drv);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline async_sqlite3_command *make_async_command_statement(
|
||||
sqlite3_drv_t *drv, sqlite3_stmt *statement) {
|
||||
async_sqlite3_command *result =
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
#define CMD_PREPARED_FINALIZE 10
|
||||
#define CMD_PREPARED_COLUMNS 11
|
||||
#define CMD_SQL_EXEC_SCRIPT 12
|
||||
#define CMD_ENABLE_LOAD_EXTENSION 13
|
||||
|
||||
// Number of bytes for each key
|
||||
// (160 bits for SHA1 hash)
|
||||
@@ -111,7 +112,7 @@ static void sql_exec_async(void *async_command);
|
||||
static void sql_free_async(void *async_command);
|
||||
static void ready_async(ErlDrvData drv_data, ErlDrvThreadData thread_data);
|
||||
static int unknown(sqlite3_drv_t *bdb_drv, char *buf, int len);
|
||||
|
||||
static int enable_load_extension(sqlite3_drv_t *drv, char *buf, int len);
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
#pragma warning(default: 4201)
|
||||
|
||||
Reference in New Issue
Block a user