diff --git a/apps/desktop/src/lib/__tests__/database/databaseObjectCapabilities.spec.ts b/apps/desktop/src/lib/__tests__/database/databaseObjectCapabilities.spec.ts index 42857af483..2d55f1a6ae 100644 --- a/apps/desktop/src/lib/__tests__/database/databaseObjectCapabilities.spec.ts +++ b/apps/desktop/src/lib/__tests__/database/databaseObjectCapabilities.spec.ts @@ -38,6 +38,16 @@ describe("databaseObjectCapabilities", () => { expect(sidebarObjectKindsForDatabase("doris")).toEqual(expect.arrayContaining(["TABLE", "VIEW"])); }); + it("exposes triggers only for native MySQL among MySQL-compatible paths", () => { + expect(sidebarObjectKindsForDatabase("mysql")).toEqual(["TABLE", "VIEW", "PROCEDURE", "FUNCTION", "TRIGGER"]); + expect(databaseObjectCapabilities("mysql").sourceReadable).toEqual(["VIEW", "PROCEDURE", "FUNCTION", "TRIGGER"]); + + expect(sidebarObjectKindsForDatabase("doris")).toEqual(["TABLE", "VIEW"]); + expect(sidebarObjectKindsForDatabase("starrocks")).toEqual(["TABLE", "VIEW", "MATERIALIZED_VIEW"]); + expect(sidebarObjectKindsForDatabase("manticoresearch")).toEqual(["TABLE", "FUNCTION"]); + expect(sidebarObjectKindsForDatabase("jdbc")).toEqual(["TABLE", "VIEW", "PROCEDURE", "FUNCTION"]); + }); + it("normalizes space separated materialized view types", () => { expect(normalizeSidebarObjectKind("MATERIALIZED VIEW")).toBe("MATERIALIZED_VIEW"); }); diff --git a/apps/desktop/src/lib/database/databaseObjectCapabilities.ts b/apps/desktop/src/lib/database/databaseObjectCapabilities.ts index c63928ac46..2ba9b252e6 100644 --- a/apps/desktop/src/lib/database/databaseObjectCapabilities.ts +++ b/apps/desktop/src/lib/database/databaseObjectCapabilities.ts @@ -12,6 +12,7 @@ const TABLE_VIEW_OBJECTS: SidebarObjectKind[] = ["TABLE", "VIEW"]; const TABLE_VIEW_MV_OBJECTS: SidebarObjectKind[] = ["TABLE", "VIEW", "MATERIALIZED_VIEW"]; const ROUTINE_OBJECTS: SidebarObjectKind[] = ["TABLE", "VIEW", "PROCEDURE", "FUNCTION"]; +const MYSQL_OBJECTS: SidebarObjectKind[] = ["TABLE", "VIEW", "PROCEDURE", "FUNCTION", "TRIGGER"]; // PostgreSQL-family databases with a verified pg_type listing path. TYPE only // covers user-created types (enum/domain/composite/range/multirange/base); @@ -52,6 +53,7 @@ const DATABASE_TYPE_OBJECTS = new Map([ ["dameng", DAMENG_OBJECTS], ["oceanbase-oracle", OCEANBASE_ORACLE_OBJECTS], ["xugu", XUGU_OBJECTS], + ["mysql", MYSQL_OBJECTS], // table and view ["sqlite", TABLE_VIEW_OBJECTS], ["rqlite", TABLE_VIEW_OBJECTS],