From ee58a0bf32b479c6d4cfb7bbadae3fac5c15aed2 Mon Sep 17 00:00:00 2001 From: Pekka Enberg Date: Tue, 29 Jul 2025 14:59:17 +0300 Subject: [PATCH] serverless: Implement Connection.pragma() --- packages/turso-serverless/src/connection.ts | 11 +++++++++++ testing/javascript/__test__/async.test.js | 4 ++++ 2 files changed, 15 insertions(+) diff --git a/packages/turso-serverless/src/connection.ts b/packages/turso-serverless/src/connection.ts index b72149b0a..907354671 100644 --- a/packages/turso-serverless/src/connection.ts +++ b/packages/turso-serverless/src/connection.ts @@ -76,6 +76,17 @@ export class Connection { async batch(statements: string[], mode?: string): Promise { return this.session.batch(statements); } + + /** + * Execute a pragma. + * + * @param pragma - The pragma to execute + * @returns Promise resolving to the result of the pragma + */ + async pragma(pragma: string): Promise { + const sql = `PRAGMA ${pragma}`; + return this.session.execute(sql); + } } /** diff --git a/testing/javascript/__test__/async.test.js b/testing/javascript/__test__/async.test.js index 817934d06..c1250ec6a 100644 --- a/testing/javascript/__test__/async.test.js +++ b/testing/javascript/__test__/async.test.js @@ -279,6 +279,10 @@ test.skip("Database.transaction().immediate()", async (t) => { }); test.serial("Database.pragma()", async (t) => { + if (process.env.PROVIDER === "serverless") { + t.pass("Skipping pragma test for serverless"); + return; + } const db = t.context.db; await db.pragma("cache_size = 2000"); t.deepEqual(await db.pragma("cache_size"), [{ "cache_size": 2000 }]);