已开启
examples: 补充 HikariCP + MySQL JDBC 连接 openGauss B 兼容库验证工程 #105
cuiyunhao-2026创建于 22 天前
examples: 补充 HikariCP + MySQL JDBC 连接 openGauss B 兼容库验证工程 #105
已开启
合并受阻
22 天前 创建了 pull request,commit 163f07f4
22 天前 添加了label:sig/Infra
opengauss_bot
22 天前 评论:
22 天前 评论:
Welcome To openGauss Community
Hey @cuiyunhao-2026 , thanks for your contribution to the community.
Bot Usage Manual
I'm the Bot here serving you. You can find the instructions on how to interact with me at Here . That means you can comment below every pull request or issue to trigger Bot Commands.
Contact Guide
If you have any questions, please contact the SIG: Infra ,
and any of the maintainers: @CarrotGo, @chendong76, @chenxiaobin19, @congzhou2603, @dodders, @hwworkholic, @jemappellehc, @muyulinzhong, @quemingjian, @shenzheng4, @shirley_zhengx, @superlchf, @totaj, @wlff234, @wofanzheng, @ywzq1161327784 ,
and any of the committers: @ailoooong, @gzbang, @libiao2024, @zhangxubo .


22 天前 添加了label:opengauss-cla/no
22 天前 修改了pull request 的描述
此处折叠了513条消息 查看更多
14 小时前 添加了label:opengauss-cla/yes
opengauss_bot
14 小时前 评论:
14 小时前 评论:
14 小时前 修改了pull request 的描述
14 小时前 删除了label:ai-compliance-failed
14 小时前 添加了label:ai-compliance-successful
【实现内容】
在 OpengaussCompatibility2hikari 目录下提供基于 HikariCP 连接池与 MySQL JDBC 连接 openGauss B 兼容模式数据库的验证工程,整体覆盖旧草稿,改为导师严谨验证工程。
【根因分析】:
社区缺少基于 HikariCP 连接池连接 openGauss B 兼容库的可运行示例与自测证据;开源之夏 2024 报告曾记录 MySQL 驱动经 HikariCP 无法建连、事务隔离级别 default 无法映射的问题,需要在新版本下重新实测验证。
历史根因位于 dolphin 插件对 MySQL 系统变量 @@transaction_isolation、@@session.transaction_isolation、@@tx_isolation 的兼容实现。旧版返回字面量 default,更早版本报 missing FROM-clause entry for table "session",HikariCP 探测隔离级别时无法映射而建连失败;修复后返回当前真实隔离级别。版本边界为 6.0.0-RC1 的 dolphin 可复现,7.0.0-RC3 的 dolphin 5.2 已不复现。详见 docs 仓 PR #8777 的历史兼容性提示。
【实现方案】:
以导师 cyh-HikariCP 的 spring-boot-ospp 验证工程整体覆盖既有 OpengaussCompatibility2hikari 工程。示例使用 HikariCP 与 mysql-connector-java 驱动连接 B 兼容库,执行 SELECT 1、版本探测、DDL、INSERT、SELECT、UPDATE、DELETE、事务提交、连接池参数校验、连接池上限等待、10 个 worker 真实并发增删改查提交等用例,输出统一结论。
另增独立五类操作验证程序,逐类覆盖 DDL 的 CREATE、ALTER、DROP、TRUNCATE、CTAS、INDEX 共 7 项,DML 的单行 INSERT、批量 INSERT、UPDATE、DELETE 共 4 项 PASS 加 getGeneratedKeys 1 项 INFO,DQL 的 SELECT、WHERE、ORDER BY、聚合、GROUP BY、DISTINCT、子查询共 7 项,DCL 的 GRANT、REVOKE、权限查询共 4 项,TCL 的 COMMIT、ROLLBACK、SAVEPOINT 共 3 项 PASS 加隔离级别查询 1 项 INFO,以及并发连接 10 个 worker 共 1 项。
结论表与分类统计由程序按实际执行结果输出,DCL 的 GRANT 与 REVOKE 在权限不足时按 WARN 单独计数,避免结论与实测输出不一致。
【连接链路流程】:
本验证工程实测验证的正是以下链路:Spring Boot 应用通过 HikariCP 连接池,使用 MySQL Connector/J 驱动,连上 openGauss B 兼容模式数据库。链路核心是 dolphin 插件在 openGauss 服务端模拟了一个 MySQL 服务器,因此上层的 Spring Boot、HikariCP、MySQL Connector/J 都以为自己在连接标准 MySQL 数据库,完全不知道底层是 openGauss。只要 Connector/J 能正常完成 TCP 握手与认证,后续 SQL 执行与事务管理均建立在 JDBC 标准接口之上,不受底层数据库差异影响。
核心流程:
Spring Boot → HikariDataSource 与 HikariConfig → HikariCP 连接池 HikariPool → MySQL Connector/J 的 Driver.connect 创建 ConnectionImpl → TCP 连接 host:3306 完成 MySQL 协议握手与认证 → dolphin 插件在 openGauss 服务端模拟 MySQL 服务器 → openGauss B 兼容模式数据库执行 SQL 与事务
flowchart TD A[Spring Boot 应用 DataSourceAutoConfiguration] --> B[HikariDataSource 加载 HikariConfig] B --> C[HikariCP 连接池 HikariPool 创建与管理 PoolEntry 物理连接] C --> D[MySQL Connector/J Driver.connect 创建 ConnectionImpl] D --> E[TCP 连接 host:3306 完成 MySQL 协议握手与认证] E --> F[dolphin 插件在 openGauss 服务端模拟 MySQL 服务器] F --> G[openGauss B 兼容模式数据库执行 SQL 与事务] G -->|结果按 MySQL 协议封装返回| E代码触发节点:
【本轮审查问题修复】:
【关联需求或issue】:
Issue: https://gitcode.com/opengauss/opensource-intership/issues/47
关联PR: https://gitcode.com/opengauss/docs/merge_requests/8777
【开发自验报告】:
实测验证通过,关键项摘要如下。环境为 HikariCP 5.1.0、mysql-connector-java 8.0.20、openGauss 7.0.0 build 93bfec54,dolphin 功能等价于 7.0.0-RC3。
Spring Boot 集成验证共 13 项:
五类标准 SQL 操作验证共 28 项,其中 26 项 PASS、2 项 INFO:
完整用例明细与实测输出见 sql_category_verification.txt、五类SQL操作自验清单.txt 与 spring端-通过清单.txt。
是否可以添加fastcheck测试用例,如是,请补充fastcheck用例
否。examples 仓为示例与验证工程,不纳入服务端 fastcheck 回归用例体系,本次以独立验证工程加实测清单的形式提供证据。
是否涉及资料修改,如是,在docs仓库补充资料
是。对应开发指导文档已在 docs 仓 PR #8777 补充,含五类操作示例章节。
是否考虑升级场景(系统表修改、日志持久化以及修改执行态数据格式)
否。示例工程不修改数据库对象或执行态。
是否考虑在线扩容等扩展场景
否。
是否考虑异常场景/并发场景/前向兼容/性能场景
是。验证工程已覆盖连接池参数生效、连接池上限等待不突破最大连接数、真实并发数据库操作、五类标准 SQL 全量操作、并发连接多线程同时持连接执行完整事务。异常场景如错误口令与网络中断可在后续迭代中增强。
是否对其他模块产生影响
否。独立验证工程,不影响其他模块。
是否需要回合补丁版本(5.0、6.0)…
否。无服务端代码修复,不涉及回合。
针对Plugin仓dolphin插件,新增/修改的代码是否已使用 DOLPHIN 宏进行控制…
否。本 PR 不含 dolphin 插件代码修改。
【当前PR是否有AI参与】:
【其他说明】:
关键结论:开源之夏 2024 报告中 MySQL 驱动经 HikariCP 无法建连、事务隔离级别 default 无法映射的问题,根因在 dolphin 旧版对 @@transaction_isolation 返回 default,无法被 HikariCP 映射;该兼容性已在 openGauss 7.0.0-RC3 的 dolphin 5.2 修复,现可正常建连并完成 CRUD 与事务。本工程在新版本下实跑,五类标准 SQL 操作 28 项中 26 项 PASS、2 项 INFO,Spring Boot 集成验证 13 项全部通过。