From ea6ae62b2473e598b4bfa565c98a1ed166f9293d Mon Sep 17 00:00:00 2001 From: dreblen Date: Fri, 12 Jan 2024 16:50:28 -0600 Subject: [PATCH] Register Extension Functions After Export (#565) - Added call to registerExtensionFunctions() after the database is reloaded during the exportDatabase() call. - Added test for this scenario. --- src/api.js | 1 + test/test_extension_functions.js | 3 +++ 2 files changed, 4 insertions(+) diff --git a/src/api.js b/src/api.js index ee14b6d2..6cb3de13 100644 --- a/src/api.js +++ b/src/api.js @@ -1088,6 +1088,7 @@ Module["onRuntimeInitialized"] = function onRuntimeInitialized() { var binaryDb = FS.readFile(this.filename, { encoding: "binary" }); this.handleError(sqlite3_open(this.filename, apiTemp)); this.db = getValue(apiTemp, "i32"); + registerExtensionFunctions(this.db); return binaryDb; }; diff --git a/test/test_extension_functions.js b/test/test_extension_functions.js index d9542ac0..0a8d6d17 100644 --- a/test/test_extension_functions.js +++ b/test/test_extension_functions.js @@ -69,6 +69,9 @@ exports.test = function(sql, assert) { var res = db.exec("SELECT reverse(str_data) FROM test;"); assert.equal(res[0]['values'][0][0], "!dlroW olleH", "reverse() function works"); + db.export() + var res = db.exec("SELECT floor(4.1)"); + assert.equal(res[0]['values'][0][0], 4, "extension function works after export()"); }; if (module == require.main) {