diff --git a/apps/desktop/src/lib/__tests__/table/objectRenameSql.spec.ts b/apps/desktop/src/lib/__tests__/table/objectRenameSql.spec.ts index f5d66ce49e..b27b1a04dc 100644 --- a/apps/desktop/src/lib/__tests__/table/objectRenameSql.spec.ts +++ b/apps/desktop/src/lib/__tests__/table/objectRenameSql.spec.ts @@ -12,6 +12,16 @@ describe("Inceptor object rename", () => { }); }); +describe("StarRocks object rename", () => { + it("enables table rename only", () => { + expect(supportsObjectRename("starrocks", "TABLE")).toBe(true); + for (const objectType of ["VIEW", "MATERIALIZED_VIEW", "PROCEDURE", "FUNCTION", "EVENT"] as const) { + expect(supportsObjectRename("starrocks", objectType)).toBe(false); + } + expect(supportsDatabaseRename("starrocks")).toBe(false); + }); +}); + describe("database rename", () => { it("chooses a maintenance database outside the rename target", () => { expect(databaseRenameMaintenanceDatabase("admin", "application")).toBe("admin"); diff --git a/apps/desktop/src/lib/table/objectRenameSql.ts b/apps/desktop/src/lib/table/objectRenameSql.ts index b34243d168..86e575d11e 100644 --- a/apps/desktop/src/lib/table/objectRenameSql.ts +++ b/apps/desktop/src/lib/table/objectRenameSql.ts @@ -23,7 +23,7 @@ export function supportsObjectRename(databaseType: DatabaseType | undefined, obj return false; } if (databaseType === "sqlite" || databaseType === "rqlite" || databaseType === "turso" || databaseType === "cloudflare-d1" || databaseType === "duckdb") return objectType === "TABLE"; - if (databaseType === "transwarp") return objectType === "TABLE"; + if (databaseType === "transwarp" || databaseType === "starrocks") return objectType === "TABLE"; if (databaseType === "mysql" || databaseType === "goldendb") return objectType === "TABLE" || objectType === "VIEW"; if (postgresLikeRenameTypes.has(databaseType)) return objectType === "TABLE" || objectType === "VIEW" || objectType === "MATERIALIZED_VIEW"; if (oracleLikeRenameTypes.has(databaseType)) return objectType === "TABLE" || objectType === "VIEW" || objectType === "MATERIALIZED_VIEW"; diff --git a/crates/dbx-sql-schema/src/db_admin_sql.rs b/crates/dbx-sql-schema/src/db_admin_sql.rs index fdc4801af2..8eb502fa4b 100644 --- a/crates/dbx-sql-schema/src/db_admin_sql.rs +++ b/crates/dbx-sql-schema/src/db_admin_sql.rs @@ -932,7 +932,7 @@ pub fn supports_object_rename(database_type: Option, object_type: if database_type == DatabaseType::SqlServer { return true; } - if database_type == DatabaseType::Transwarp { + if matches!(database_type, DatabaseType::Transwarp | DatabaseType::StarRocks) { return object_type == DatabaseObjectType::Table; } if matches!(object_type, DatabaseObjectType::Procedure | DatabaseObjectType::Function) { @@ -978,6 +978,14 @@ pub fn build_rename_object_sql(options: RenameObjectSqlOptions) -> Result