Skip to content

Conversation

@LanceAdd
Copy link
Member

@LanceAdd LanceAdd commented Jan 19, 2026

变更说明

本 PR 主要对代码库进行了重构,以提升类型安全性和优化连接管理实现。

详细变更

1. 数据库连接管理优化

  • 修改 RegisterNilChecker方法返回实例以支持链式调用,涉及 KVMapListKVMapTSetAVLKVTreeBKVTreeRedBlackKVTree 等多个容器类型
  • 更新 Core结构体中 links字段类型为类型安全的 KVMap[ConfigNode, *sql.DB]
  • 添加专门的链接检查器函数用于连接池管理
  • 使用泛型 KVMap替代原始 map 类型提升类型安全性
  • 简化连接关闭逻辑并移除不必要的类型断言
  • 优化统计功能中的迭代器实现提高性能

2. 数据库驱动类型安全增强

  • 将 dm、gaussdb、mssql、oracle 驱动中的 conflictKeySetgset.New修改为 gset.NewStrSet
  • 统一使用字符串集合类型以提高类型安全性

3. 配置文件适配器类型安全改进

  • jsonMapStrAnyMap 类型更改为泛型 KVMap[string, *gjson.Json] 类型
  • 添加 jsonMapChecker 函数用于 JSON 对象验证
  • 使用 NewKVMapWithChecker 替代 NewStrAnyMap 提高类型安全性
  • 简化数据库链接关闭日志中的键值转换逻辑

影响范围

  • 数据库连接管理模块
  • 多个数据库驱动实现
  • 配置文件管理系统

- 修改 RegisterNilChecker 方法返回实例以支持链式调用
- 更新 Core 结构体中 links 字段类型为类型安全的 KVMap
- 添加专门的链接检查器函数用于连接池管理
- 使用泛型 KVMap 替代原始 map 类型提升类型安全性
- 简化连接关闭逻辑并移除不必要的类型断言
- 优化统计功能中的迭代器实现提高性能
- 将 jsonMap 从 StrAnyMap 类型更改为泛型 KVMap[string, *gjson.Json] 类型
- 添加 jsonMapChecker 函数用于 JSON 对象验证
- 使用 NewKVMapWithChecker 替代 NewStrAnyMap 提高类型安全性
- 修改 GetOrSetFuncLock 回调函数返回类型为 *gjson.Json
- 简化数据库链接关闭日志中的键值转换逻辑
- 将 dm 驱动中的 conflictKeySet 从 gset.New 修改为 gset.NewStrSet
- 将 gaussdb 驱动中的 conflictKeySet 从 gset.New 修改为 gset.NewStrSet
- 将 mssql 驱动中的 conflictKeySet 从 gset.New 修改为 gset.NewStrSet
- 将 oracle 驱动中的 conflictKeySet 从 gset.New 修改为 gset.NewStrSet
- 统一使用字符串集合类型以提高类型安全性
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.

1 participant