From de2c34578f7533ea80e8c425103825fdd9d65ec0 Mon Sep 17 00:00:00 2001 From: Matt <1009003+tantaman@users.noreply.github.com> Date: Wed, 9 Aug 2023 14:01:13 -0400 Subject: [PATCH] only load our extension into dbs created from JS --- Makefile | 1 - src/exported_functions.json | 4 +++- src/sqlite-api.js | 4 ++++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 83598720..6645c26f 100644 --- a/Makefile +++ b/Makefile @@ -123,7 +123,6 @@ WASQLITE_DEFINES ?= \ -DSQLITE_ENABLE_BYTECODE_VTAB \ -DSQLITE_THREADSAFE=0 \ -DSQLITE_USE_ALLOCA \ - -DSQLITE_EXTRA_INIT=core_init \ -DSQLITE_ENABLE_BATCH_ATOMIC_WRITE \ -DSQLITE_ENABLE_FTS5 \ -DCRSQLITE_WASM diff --git a/src/exported_functions.json b/src/exported_functions.json index fef48107..b9934581 100644 --- a/src/exported_functions.json +++ b/src/exported_functions.json @@ -1,5 +1,6 @@ [ "_RegisterExtensionFunctions", + "_core_init", "_main", "_malloc", "_free", @@ -53,5 +54,6 @@ "_sqlite3_value_int64", "_sqlite3_value_text", "_sqlite3_value_type", - "_sqlite3_vfs_find" + "_sqlite3_vfs_find", + "_sqlite3_reset_auto_extension" ] diff --git a/src/sqlite-api.js b/src/sqlite-api.js index 3de81d8f..ee4ef513 100644 --- a/src/sqlite-api.js +++ b/src/sqlite-api.js @@ -506,6 +506,8 @@ export function Factory(Module) { })(); sqlite3.open_v2 = (function() { + // setup auto-extension loading + Module.ccall('core_init', 'void', ['number'], [0]); const fname = 'sqlite3_open_v2'; const f = Module.cwrap(fname, ...decl('snnn:n'), { async }); return async function(zFilename, flags, zVfs) { @@ -518,6 +520,8 @@ export function Factory(Module) { Module._sqlite3_free(zVfs); Module.ccall('RegisterExtensionFunctions', 'void', ['number'], [db]); + // tear it back down so temp dbs created by the extension (e.g., for automigrate) don't get the extension + Module.ccall('sqlite3_reset_auto_extension', 'void'); check(fname, result); return db; };