diff --git a/apps/desktop/src/lib/database/databaseCapabilitySets.ts b/apps/desktop/src/lib/database/databaseCapabilitySets.ts index 8eb4441b5..1c1ddaf2e 100644 --- a/apps/desktop/src/lib/database/databaseCapabilitySets.ts +++ b/apps/desktop/src/lib/database/databaseCapabilitySets.ts @@ -39,7 +39,7 @@ export const SCHEMA_AWARE_TYPES = new Set([ export const SINGLE_DATABASE_TYPES = new Set(["oracle", "dameng", "firebird", "oceanbase-oracle", "access", "questdb"]); -export const CLEARABLE_QUERY_SCHEMA_TYPES = new Set(["oracle", "dameng", "oceanbase-oracle"]); +export const CLEARABLE_QUERY_SCHEMA_TYPES = new Set(["oracle", "dameng", "gaussdb", "oceanbase-oracle"]); export const FETCH_FIRST_TYPES = new Set(["oracle", "dameng"]); diff --git a/packages/app-tests/databaseCapabilities.test.ts b/packages/app-tests/databaseCapabilities.test.ts index a9b429bdd..239b49439 100644 --- a/packages/app-tests/databaseCapabilities.test.ts +++ b/packages/app-tests/databaseCapabilities.test.ts @@ -33,12 +33,14 @@ test("visible schema menu capability preserves adjacent database families", () = assert.equal(canConfigureVisibleSchemasForTreeNode("mysql", "database", "app"), false); }); -test("only Oracle-compatible single-database schemas can be cleared from query tabs", () => { +test("only explicitly supported query schemas can be cleared from query tabs", () => { assert.equal(supportsClearableQuerySchema("oracle"), true); assert.equal(supportsClearableQuerySchema("dameng"), true); + assert.equal(supportsClearableQuerySchema("gaussdb"), true); assert.equal(supportsClearableQuerySchema("oceanbase-oracle"), true); assert.equal(supportsClearableQuerySchema("mysql"), false); assert.equal(supportsClearableQuerySchema("postgres"), false); + assert.equal(supportsClearableQuerySchema("opengauss"), false); assert.equal(supportsClearableQuerySchema("sqlserver"), false); assert.equal(supportsClearableQuerySchema("jdbc"), false); }); diff --git a/packages/app-tests/queryStore.test.ts b/packages/app-tests/queryStore.test.ts index f79773046..81f39be1f 100644 --- a/packages/app-tests/queryStore.test.ts +++ b/packages/app-tests/queryStore.test.ts @@ -49,9 +49,9 @@ function oracleConn(id: string): ConnectionConfig { }; } -function oracleCompatibleConn(id: string, dbType: "oracle" | "dameng" | "oceanbase-oracle"): ConnectionConfig { +function clearableQuerySchemaConn(id: string, dbType: "oracle" | "dameng" | "gaussdb" | "oceanbase-oracle"): ConnectionConfig { return { - ...oracleConn(id), + ...conn(id), db_type: dbType, }; } @@ -4246,7 +4246,7 @@ test("closing a data tab releases its tab-scoped client session", async () => { } }); -for (const dbType of ["oracle", "dameng", "oceanbase-oracle"] as const) { +for (const dbType of ["oracle", "dameng", "gaussdb", "oceanbase-oracle"] as const) { test(`clearing a ${dbType} query schema releases its tab-scoped client session`, async () => { const restoreStorage = installMemoryStorage(); setActivePinia(createPinia()); @@ -4255,7 +4255,7 @@ for (const dbType of ["oracle", "dameng", "oceanbase-oracle"] as const) { const originalFetch = globalThis.fetch; const connectionId = `${dbType}-1`; - connectionStore.addEphemeralConnection(oracleCompatibleConn(connectionId, dbType)); + connectionStore.addEphemeralConnection(clearableQuerySchemaConn(connectionId, dbType)); const tabId = store.createTab(connectionId, "SERVICE", "Query", "query", "REPORTING"); const closedSessions: any[] = [];