mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-08-22 00:42:47 +08:00
✨ feat(clickhouse): 支持自定义连接兼容 JDBC DSN
- 解析 ClickHouse 与 JDBC 风格 DSN 并映射协议、TLS、认证及数据库参数 - 统一连接缓存、DDL、数据同步与导出 driver-agent 生命周期 - 保持 DSN 加密存储并补充前后端回归测试和多语言提示 Fixes #383
This commit is contained in:
@@ -41,6 +41,9 @@ describe("connectionDriverType", () => {
|
||||
);
|
||||
expect(resolveConnectionDriverType("custom", "gauss_db")).toBe("gaussdb");
|
||||
expect(resolveConnectionDriverType("custom", "goldendb")).toBe("goldendb");
|
||||
expect(resolveConnectionDriverType("custom", "ClickHouse")).toBe(
|
||||
"clickhouse",
|
||||
);
|
||||
expect(resolveConnectionDriverType("custom", "")).toBe("");
|
||||
});
|
||||
|
||||
|
||||
@@ -34,4 +34,12 @@ describe('shouldAllowBlankCustomDsn', () => {
|
||||
clearStoredSecret: true,
|
||||
})).toBe(true);
|
||||
});
|
||||
|
||||
it('accepts a JDBC-style ClickHouse DSN for the backend compatibility adapter', () => {
|
||||
expect(shouldAllowBlankCustomDsn({
|
||||
dsnInput: 'jdbc:clickhouse://localhost:8123/default',
|
||||
hasStoredSecret: false,
|
||||
clearStoredSecret: false,
|
||||
})).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -31,6 +31,18 @@ describe('dataSourceCapabilities', () => {
|
||||
});
|
||||
});
|
||||
|
||||
it('uses ClickHouse capabilities for a custom ClickHouse JDBC connection', () => {
|
||||
expect(getDataSourceCapabilities({ type: 'custom', driver: 'clickhouse' })).toMatchObject({
|
||||
type: 'clickhouse',
|
||||
supportsQueryEditor: true,
|
||||
supportsExplainDiagnosis: true,
|
||||
supportsSqlQueryExport: true,
|
||||
supportsCreateDatabase: true,
|
||||
supportsDropDatabase: true,
|
||||
forceReadOnlyQueryResult: true,
|
||||
});
|
||||
});
|
||||
|
||||
it('only enables execution-plan diagnosis for backend-supported SQL dialects', () => {
|
||||
expect(getDataSourceCapabilities({ type: 'goldendb' }).supportsExplainDiagnosis).toBe(true);
|
||||
expect(getDataSourceCapabilities({ type: 'custom', driver: 'greatdb' }).supportsExplainDiagnosis).toBe(true);
|
||||
|
||||
@@ -141,6 +141,8 @@ describe('driver import guidance', () => {
|
||||
expect(helpText).toContain('pgx');
|
||||
expect(helpText).toContain('open_gauss');
|
||||
expect(helpText).toContain('oceanbase');
|
||||
expect(helpText).toContain('clickhouse');
|
||||
expect(helpText).toContain('jdbc:clickhouse://');
|
||||
expect(helpText).toContain('Go database/sql');
|
||||
expect(helpText).toContain('ODBC/JDBC');
|
||||
expect(helpText).toContain('JDBC Jar');
|
||||
|
||||
Reference in New Issue
Block a user