feat(gaussdb): allow clearing query schema

This commit is contained in:
zipg authored and GitHub committed 2026-07-16 17:31:36 +08:00
1 parent 7c43c03254
commit ef76b137bb
3 files changed
+8 -6

No files matched your search

@@ -39,7 +39,7 @@ export const SCHEMA_AWARE_TYPES = new Set<DatabaseType>([
export const SINGLE_DATABASE_TYPES = new Set<DatabaseType>(["oracle", "dameng", "firebird", "oceanbase-oracle", "access", "questdb"]); export const SINGLE_DATABASE_TYPES = new Set<DatabaseType>(["oracle", "dameng", "firebird", "oceanbase-oracle", "access", "questdb"]);
export const CLEARABLE_QUERY_SCHEMA_TYPES = new Set<DatabaseType>(["oracle", "dameng", "oceanbase-oracle"]); export const CLEARABLE_QUERY_SCHEMA_TYPES = new Set<DatabaseType>(["oracle", "dameng", "gaussdb", "oceanbase-oracle"]);
export const FETCH_FIRST_TYPES = new Set<DatabaseType>(["oracle", "dameng"]); export const FETCH_FIRST_TYPES = new Set<DatabaseType>(["oracle", "dameng"]);
+3 -1
View File
@@ -33,12 +33,14 @@ test("visible schema menu capability preserves adjacent database families", () =
assert.equal(canConfigureVisibleSchemasForTreeNode("mysql", "database", "app"), false); 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("oracle"), true);
assert.equal(supportsClearableQuerySchema("dameng"), true); assert.equal(supportsClearableQuerySchema("dameng"), true);
assert.equal(supportsClearableQuerySchema("gaussdb"), true);
assert.equal(supportsClearableQuerySchema("oceanbase-oracle"), true); assert.equal(supportsClearableQuerySchema("oceanbase-oracle"), true);
assert.equal(supportsClearableQuerySchema("mysql"), false); assert.equal(supportsClearableQuerySchema("mysql"), false);
assert.equal(supportsClearableQuerySchema("postgres"), false); assert.equal(supportsClearableQuerySchema("postgres"), false);
assert.equal(supportsClearableQuerySchema("opengauss"), false);
assert.equal(supportsClearableQuerySchema("sqlserver"), false); assert.equal(supportsClearableQuerySchema("sqlserver"), false);
assert.equal(supportsClearableQuerySchema("jdbc"), false); assert.equal(supportsClearableQuerySchema("jdbc"), false);
}); });
+4 -4
View File
@@ -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 { return {
...oracleConn(id), ...conn(id),
db_type: dbType, 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 () => { test(`clearing a ${dbType} query schema releases its tab-scoped client session`, async () => {
const restoreStorage = installMemoryStorage(); const restoreStorage = installMemoryStorage();
setActivePinia(createPinia()); setActivePinia(createPinia());
@@ -4255,7 +4255,7 @@ for (const dbType of ["oracle", "dameng", "oceanbase-oracle"] as const) {
const originalFetch = globalThis.fetch; const originalFetch = globalThis.fetch;
const connectionId = `${dbType}-1`; const connectionId = `${dbType}-1`;
connectionStore.addEphemeralConnection(oracleCompatibleConn(connectionId, dbType)); connectionStore.addEphemeralConnection(clearableQuerySchemaConn(connectionId, dbType));
const tabId = store.createTab(connectionId, "SERVICE", "Query", "query", "REPORTING"); const tabId = store.createTab(connectionId, "SERVICE", "Query", "query", "REPORTING");
const closedSessions: any[] = []; const closedSessions: any[] = [];