From b0512ccbf48ef2355a7ab753cb75bb04da945d91 Mon Sep 17 00:00:00 2001 From: Claude Bot Date: Sun, 1 Feb 2026 00:34:55 +0000 Subject: [PATCH] fix(sql): correct MySQL unix socket error message The error message when failing to connect to a MySQL database via unix socket incorrectly said "failed to connect to postgresql" instead of "failed to connect to mysql". This was a copy-paste error. Fixes #26648 Co-Authored-By: Claude Opus 4.5 --- src/sql/mysql/js/JSMySQLConnection.zig | 2 +- test/regression/issue/26648.test.ts | 41 ++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 test/regression/issue/26648.test.ts diff --git a/src/sql/mysql/js/JSMySQLConnection.zig b/src/sql/mysql/js/JSMySQLConnection.zig index a85bc7519f..016640cf36 100644 --- a/src/sql/mysql/js/JSMySQLConnection.zig +++ b/src/sql/mysql/js/JSMySQLConnection.zig @@ -464,7 +464,7 @@ pub fn createInstance(globalObject: *jsc.JSGlobalObject, callframe: *jsc.CallFra ptr.#connection.setSocket(.{ .SocketTCP = uws.SocketTCP.connectUnixAnon(path, ctx, ptr, false) catch |err| { ptr.deref(); - return globalObject.throwError(err, "failed to connect to postgresql"); + return globalObject.throwError(err, "failed to connect to mysql"); }, }); } else { diff --git a/test/regression/issue/26648.test.ts b/test/regression/issue/26648.test.ts new file mode 100644 index 0000000000..986c5a13ea --- /dev/null +++ b/test/regression/issue/26648.test.ts @@ -0,0 +1,41 @@ +import { expect, test } from "bun:test"; +import { bunEnv, bunExe, tempDir } from "harness"; + +test("MySQL unix socket error message should not say 'postgresql'", async () => { + using dir = tempDir("mysql-socket-test", { + "test.ts": ` +import { join } from "path"; +// Create a regular file (not a socket) to trigger the connection error +const fakeSockPath = join(import.meta.dirname, "fake.sock"); +await Bun.write(fakeSockPath, ""); + +const conn = new Bun.SQL({ + adapter: 'mysql', + path: fakeSockPath, + username: 'root', + database: 'test' +}); + +try { + await conn\`select 1\`; +} catch(e) { + console.log(e.message); +} +`, + }); + + await using proc = Bun.spawn({ + cmd: [bunExe(), "test.ts"], + env: bunEnv, + cwd: String(dir), + stdout: "pipe", + stderr: "pipe", + }); + + const [stdout, stderr, exitCode] = await Promise.all([proc.stdout.text(), proc.stderr.text(), proc.exited]); + + const output = stdout + stderr; + expect(output).not.toContain("postgresql"); + expect(output).toContain("mysql"); + expect(exitCode).toBe(0); +});