diff --git a/apps/desktop/src/lib/dataGrid/dataGridBooleanColumn.ts b/apps/desktop/src/lib/dataGrid/dataGridBooleanColumn.ts index 74dbc0eb33..7ba42f3104 100644 --- a/apps/desktop/src/lib/dataGrid/dataGridBooleanColumn.ts +++ b/apps/desktop/src/lib/dataGrid/dataGridBooleanColumn.ts @@ -3,11 +3,14 @@ import type { DatabaseType } from "@/types/database"; export const BOOLEAN_CHECKBOX_SIZE = 13; export const BOOLEAN_CELL_EDITOR_VALUES = ["true", "false"]; +const MYSQL_BIT_BOOLEAN_DATABASE_TYPES = new Set(["mysql"]); + export function isBooleanColumnType(dataType: string | undefined, databaseType?: DatabaseType): boolean { if (!dataType) return false; const normalized = dataType.trim().toLowerCase(); if (normalized === "boolean" || normalized === "bool") return true; if (databaseType === "sqlserver") return normalized === "bit"; + if (databaseType && MYSQL_BIT_BOOLEAN_DATABASE_TYPES.has(databaseType)) return normalized === "bit" || normalized === "bit(1)"; return false; } diff --git a/packages/app-tests/dataGridBooleanColumn.test.ts b/packages/app-tests/dataGridBooleanColumn.test.ts index 55b27f6db4..65c20de948 100644 --- a/packages/app-tests/dataGridBooleanColumn.test.ts +++ b/packages/app-tests/dataGridBooleanColumn.test.ts @@ -22,6 +22,8 @@ test("detects boolean types using database semantics", () => { assert.equal(isBooleanColumnType("bit", "sqlserver"), true); assert.equal(isBooleanColumnType("boolean", "mysql"), true); assert.equal(isBooleanColumnType(" BOOLEAN ", "postgres"), true); + assert.equal(isBooleanColumnType("bit", "mysql"), true); + assert.equal(isBooleanColumnType("bit(1)", "mysql"), true); }); test("does not treat database bit strings or MySQL integer aliases as boolean", () => { @@ -31,8 +33,6 @@ test("does not treat database bit strings or MySQL integer aliases as boolean", assert.equal(isBooleanColumnType("varbit", "postgres"), false); assert.equal(isBooleanColumnType("bit", "opengauss"), false); assert.equal(isBooleanColumnType("bit", undefined), false); - assert.equal(isBooleanColumnType("bit", "mysql"), false); - assert.equal(isBooleanColumnType("bit(1)", "mysql"), false); assert.equal(isBooleanColumnType("bit(8)", "mysql"), false); assert.equal(isBooleanColumnType("tinyint(1)", "mysql"), false); assert.equal(isBooleanColumnType(undefined, "mysql"), false);