feat(gaussdb): allow clearing query schema

This commit is contained in:
zipg 2026-07-16 17:31:36 +08:00 committed by GitHub
parent 7c43c03254
commit ef76b137bb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 8 additions and 6 deletions

View File

@ -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 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"]);

View File

@ -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);
});

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 {
...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[] = [];