From 375c74eca1fb8b35de171d4ba7ed08f9a1f1e9c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arne=20J=C3=B8rgensen?= Date: Wed, 15 Oct 2025 17:21:02 +0200 Subject: [PATCH] fix: Check for empty row in mysql2 driver This is a port of the fix in #18 but for the mysql2 driver. --- examples/bun-mysql2/src/db/query_sql.ts | 6 ++++++ examples/node-mysql2/src/db/query_sql.ts | 6 ++++++ src/drivers/mysql2.ts | 11 +++++++++++ 3 files changed, 23 insertions(+) diff --git a/examples/bun-mysql2/src/db/query_sql.ts b/examples/bun-mysql2/src/db/query_sql.ts index 1673007..a566596 100644 --- a/examples/bun-mysql2/src/db/query_sql.ts +++ b/examples/bun-mysql2/src/db/query_sql.ts @@ -28,6 +28,9 @@ export async function getAuthor(client: Client, args: GetAuthorArgs): Promise { return null; } const row = rows[0]; + if (!row) { + return null; + } return { cBit: row[0], cTinyint: row[1], diff --git a/examples/node-mysql2/src/db/query_sql.ts b/examples/node-mysql2/src/db/query_sql.ts index c79988f..bbfcd2b 100644 --- a/examples/node-mysql2/src/db/query_sql.ts +++ b/examples/node-mysql2/src/db/query_sql.ts @@ -28,6 +28,9 @@ export async function getAuthor(client: Client, args: GetAuthorArgs): Promise { return null; } const row = rows[0]; + if (!row) { + return null; + } return { cBit: row[0], cTinyint: row[1], diff --git a/src/drivers/mysql2.ts b/src/drivers/mysql2.ts index 7859ade..35902f6 100644 --- a/src/drivers/mysql2.ts +++ b/src/drivers/mysql2.ts @@ -627,6 +627,17 @@ export class Driver { NodeFlags.TypeExcludesFlags ) ), + factory.createIfStatement( + factory.createPrefixUnaryExpression( + SyntaxKind.ExclamationToken, + factory.createIdentifier("row") + ), + factory.createBlock( + [factory.createReturnStatement(factory.createNull())], + true + ), + undefined + ), factory.createReturnStatement( factory.createObjectLiteralExpression( columns.map((col, i) =>