MYSQL GROUP_CONCAT 聚合函数 迁移 openGauss 6.0 B 模式(Dolphin) 适配说明

迁衡基于规则 my.func.group_concat 分析 MYSQL GROUP_CONCAT 聚合函数 到 openGauss 6.0 B 模式(Dolphin) 的兼容性、改写路径与验证建议。

兼容性判定

公开资料依据 · 建议 PoC 复核
支持度partial
严重度minor
置信度medium
依据规则my.func.group_concat

迁移建议

先把多表达式按 MySQL 空值契约组合为单值,再映射目标 string_agg/listagg;分别保留 DISTINCT、聚合内 ORDER BY 和 SEPARATOR,并显式决定超长报错或截断

判定说明

Dolphin 提供 GROUP_CONCAT,但长度上限、排序、DISTINCT 与字符集行为仍有边界;结论为 doc_based 草案,建议按客户参数做 PoC 复核

库侧 / 应用侧路径

库侧改造

可行:在 SQL/对象内改目标字符串聚合,必要时先子查询去重并显式长度检查

应用侧改造

可行:应用查询层改聚合语法;只有小结果集才拉明细到应用拼接

推荐路线:db_side。验证建议:覆盖 NULL、重复值、多表达式、内部排序、空/多字节分隔符和超过原 group_concat_max_len 的边界

规则样例

SELECT dept, GROUP_CONCAT(name ORDER BY name SEPARATOR ';') FROM emp GROUP BY dept
SELECT GROUP_CONCAT(DISTINCT tag) FROM t

参考来源

相关改造点

技术支持

微信交流群 微信二维码

微信:prejudice_me