Skip to content

feat: sync GBase-8a datasource type and default schema to ODC - #667

Merged
Seechi-Yolo merged 3 commits into
mainfrom
feat-965-odc-gbase8a
Aug 14, 2026
Merged

feat: sync GBase-8a datasource type and default schema to ODC#667
Seechi-Yolo merged 3 commits into
mainfrom
feat-965-odc-gbase8a

Conversation

@LordofAvernus

@LordofAvernus LordofAvernus commented Aug 13, 2026

Copy link
Copy Markdown
Collaborator

User description

关联的 issue

https://github.com/actiontech/dms-ee/issues/965

描述你的变更

  • CE 共享面增加 DBTypeGBase8a / ParseDBType
  • sql_workbench:GBase-8aGBASE_8Adatabase→DefaultSchema;VC→jdbcUrlParameters.vcName(缺省 vc1)
  • 已 rebase 金仓特性分支 feat-964-odc-kingbase;与 KingBase 映射并存(非 _ee 文件走 CE PR,对齐 check-pr-files)

确认项(pr提交后操作)

Tip

请在指定复审人之前,确认并完成以下事项,完成后✅


  • 我已完成自测
  • 我已记录完整日志方便进行诊断
  • 我已在关联的issue里补充了实现方案
  • 我已在关联的issue里补充了测试影响面
  • 我已确认了变更的兼容性,如果不兼容则在issue里标记 not_compatible
  • 我已确认了是否要更新文档,如果要更新则在issue里标记 need_update_doc

Made with Cursor


Description

  • 增加 KingBase 数据源类型解析及常量定义

  • 为 GBase-8a 数据源设置默认 Schema 且构建 JDBC 参数

  • 修改 SQL Workbench 服务逻辑以支持新数据源类型

  • 添加完善相关测试用例以验证新功能


Diagram Walkthrough

flowchart LR
  A["更新常量定义文件"]
  B["扩展 ParseDBType 函数"]
  C["调整 SQL Workbench 逻辑"]
  D["添加测试用例覆盖"]
  A -- "新增 KingBase 与 GBase8a 常量" --> B
  B -- "解析新数据源类型" --> C
  C -- "设置 DefaultSchema 与 JDBC 参数" --> D
Loading

File Walkthrough

Relevant files
Enhancement
const.go
修改数据源类型解析与常量定义                                                                                     

internal/dms/pkg/constant/const.go

  • 新增对 "KingBase" 与 "GBase-8a" 的类型解析
  • 添加对应的常量定义
+6/-0     
sql_workbench_service.go
增加 SQL Workbench 新数据源支持逻辑                                                               

internal/sql_workbench/service/sql_workbench_service.go

  • 为 KingBase 设置 database_name 作为 DefaultSchema
  • 为 GBase-8a 从 AdditionalParams 构建 JDBC 参数 (vcName)
  • 更新 convertDBType 函数返回新类型映射
+49/-1   
Tests
const_test.go
增加数据源类型解析测试                                                                                           

internal/dms/pkg/constant/const_test.go

  • 添加 KingBase 与 GBase-8a 的测试用例
  • 扩展类型解析测试覆盖
+2/-0     
sql_workbench_service_test.go
添加新数据源支持测试用例                                                                                         

internal/sql_workbench/service/sql_workbench_service_test.go

  • 新增 KingBase 数据源相关测试
  • 增加 GBase-8a 默认 Schema 与 JDBC 参数验证
+144/-0 

LordofAvernus and others added 2 commits August 13, 2026 20:20
Map KingBase to KINGBASE, require database_name, and pass it as DefaultSchema
when opening the SQL workbench.

Co-authored-by: Cursor <cursoragent@cursor.com>
Map product type GBase-8a to GBASE_8A alongside KingBase, require
AdditionalParams.database as DefaultSchema, and default vcName to vc1.

Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions

github-actions Bot commented Aug 13, 2026

Copy link
Copy Markdown

PR Reviewer Guide 🔍

(Review updated until commit e9b1948)

⏱️ Estimated effort to review: 3 🔵🔵🔵⚪⚪
🧪 PR contains tests
🔒 No security concerns identified
⚡ Recommended focus areas for review

参数传递错误

在测试函数中调用 fillDatasourceBaseInfo 时,使用了 datasourceName(字符串)作为第一个参数而非期望的 context.Context,可能导致运行时错误或测试不准确。

got, err := svc.fillDatasourceBaseInfo(datasourceName, tc.dbService, envID)
if tc.expectErr {
	if err == nil {
		t.Fatalf("expected error, got nil; baseInfo=%+v", got)
	}
	if tc.expectErrSubstr != "" && !strings.Contains(err.Error(), tc.expectErrSubstr) {
		t.Errorf("error %q does not contain %q", err.Error(), tc.expectErrSubstr)
	}
	return
}
重复校验逻辑

为 KingBase 数据源分别进行了两次使用相同参数(database_name)的校验和设置操作,可能导致冗余检查或错误提示信息不一致,建议合并逻辑以保持一致性。

// KingBase:database_name → ODC defaultSchema;缺失则失败,禁止静默空默认库
if dbService.DBType == string(pkgConst.DBTypeKingBase) {
	databaseNameParam := dbService.AdditionalParams.GetParam("database_name")
	if databaseNameParam == nil || databaseNameParam.Value == "" {
		return nil, fmt.Errorf("KingBase 数据源 %s 缺少 AdditionalParam database_name,请在数据源 AdditionalParams 中补充", dbService.Name)
	}
	databaseName := databaseNameParam.Value
	baseInfo.DefaultSchema = &databaseName
}

@github-actions

Copy link
Copy Markdown

PR Code Suggestions ✨

No code suggestions found for the PR.

@github-actions

Copy link
Copy Markdown

Persistent review updated to latest commit e9b1948

@Seechi-Yolo
Seechi-Yolo merged commit e14c6a3 into main Aug 14, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants