diff --git a/ext/node/ops/sqlite/database.rs b/ext/node/ops/sqlite/database.rs index b27d08caf82278..6091b7a2796d68 100644 --- a/ext/node/ops/sqlite/database.rs +++ b/ext/node/ops/sqlite/database.rs @@ -166,8 +166,7 @@ impl DatabaseSync { let db = self.conn.borrow(); let db = db.as_ref().ok_or(SqliteError::InUse)?; - let mut stmt = db.prepare_cached(sql)?; - stmt.raw_execute()?; + db.execute_batch(sql)?; Ok(()) } diff --git a/tests/unit_node/sqlite_test.ts b/tests/unit_node/sqlite_test.ts index 6b7f1aef54d1a7..8a222941b98d89 100644 --- a/tests/unit_node/sqlite_test.ts +++ b/tests/unit_node/sqlite_test.ts @@ -184,3 +184,16 @@ Deno.test("[node/sqlite] applyChangeset across databases", () => { { key: 2, value: "world", __proto__: null }, ]); }); + +Deno.test("[node/sqlite] exec should execute batch statements", () => { + const db = new DatabaseSync(":memory:"); + db.exec(`CREATE TABLE one(id int PRIMARY KEY) STRICT; +CREATE TABLE two(id int PRIMARY KEY) STRICT;`); + + const table = db.prepare( + `SELECT name FROM sqlite_master WHERE type='table'`, + ).all(); + assertEquals(table.length, 2); + + db.close(); +});