登录
注册
开源
企业版
高校版
搜索
帮助中心
使用条款
关于我们
开源
企业版
高校版
私有云
Gitee AI
NEW
我知道了
查看详情
登录
注册
代码拉取完成,页面将自动刷新
捐赠
捐赠前请先登录
取消
前往登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
Watch
不关注
关注所有动态
仅关注版本发行动态
关注但不提醒动态
30
Star
30
Fork
224
openGauss
/
Plugin
代码
Issues
68
Pull Requests
28
Wiki
统计
流水线
服务
Gitee Pages
JavaDoc
PHPDoc
质量分析
Jenkins for Gitee
腾讯云托管
腾讯云 Serverless
悬镜安全
阿里云 SAE
Codeblitz
我知道了,不再自动展开
Pull Requests
/
详情
61
兼容Mysql ONLY_FULL_GROUP_BY sql mode
已合并
openGauss:master
openGauss:master
xiuqiangwang
创建于 2022-04-26 11:38
克隆/下载
HTTPS
SSH
复制
下载 Email Patch
下载 Diff 文件
### **特性需求:** 主要是针对出现在select列表中的列(不使用聚合函数),是否一定要出现在group by子句中。对于mysql,当处在ONLY_FULL_GROUP_BY模式(默认模式)下,如果select列表中的列没有使用聚合函数,也没有出现在group by子句,那么会报错,如果不在此模式下,则会执行成功,并在所有符合条件的元组中选取第一个元组。 Opengauss是不支持mysql的第二种行为的,所以这次修改的目的就是兼容mysql的这个特性。 **Mysql在ONLY_FULL_GROUP_BY模式和非ONLY_FULL_GROUP_BY模式下的表现对比:** ![输入图片说明](https://images.gitee.com/uploads/images/2022/0426/113342_1228a973_10467401.png "屏幕截图.png") ![输入图片说明](https://images.gitee.com/uploads/images/2022/0426/113540_3a302834_10467401.png "屏幕截图.png") ### **特性设计:** 1.对于场景select a, b from tab1 group by a; 在opengauss代码中,不支持此种场景,会报错。 column "wxq_char.b" must appear in the GROUP BY clause or be used in an aggregate function 在修改后,要支持这种场景,并选取其中一条符合条件的元组。 代码设计: 设定sql_mode 参数默认为ONLY_FULL_GROUP_BY,如果不是,则在语义分析阶段,在transformSelectStmt流程中,对check_ungrouped_columns_walker函数进行修改,让代码不再进入ereport分支。 在后续的执行阶段进行元组选取时,opengauss代码可以支持随机选取其中一条,所以不需要做代码修改。 2.对于错误信息为subquery uses ungrouped column \"%s.%s\" from outer query的场景,复现这种场景,并进行验证,检查是否能够在非ONLY_FULL_GROUP_BY模式下能够正常执行语句。
怎样手动合并此 Pull Request
git checkout master
git pull https://gitee.com/opengauss/Plugin.git master
git push origin master
评论
16
提交
2
文件
5
检查
代码问题
0
展开设置
折叠设置
审查
审查人员
吴岳川
wuyuechuan
chenxiaobin
chenxiaobin19
pengjiong
totaj
CodeRejector
zankyfun4
熊小军
xiong_xjun
siven_dev
siven_dev
wumingyuan
wumingyuan
陈栋
chendong76
zhaosiqi
dreamalloc
jeremytim
jeremytim
胡正超
gentle_hu
zhaojun
kelayzhao
huyinghao
yinghaohu
zhangxubo
zhang_xubo
Mijamind
quemingjian
laishenghao
dodders
zhoujingbnu
zhoujingbnu
刘伟
llzx373
douxin
ywzq1161327784
wangfeihuo
wangfeihuo
李锦波
l1azzzy
liuchangfeng
superblaker
libiao
libiao2024
未设置
最少人数
0
Code Owner
测试
吴岳川
wuyuechuan
chenxiaobin
chenxiaobin19
pengjiong
totaj
CodeRejector
zankyfun4
熊小军
xiong_xjun
siven_dev
siven_dev
wumingyuan
wumingyuan
陈栋
chendong76
zhaosiqi
dreamalloc
jeremytim
jeremytim
胡正超
gentle_hu
zhaojun
kelayzhao
huyinghao
yinghaohu
zhangxubo
zhang_xubo
Mijamind
quemingjian
laishenghao
dodders
zhoujingbnu
zhoujingbnu
刘伟
llzx373
douxin
ywzq1161327784
wangfeihuo
wangfeihuo
李锦波
l1azzzy
liuchangfeng
superblaker
libiao
libiao2024
未设置
最少人数
0
优先级
不指定
严重
主要
次要
不重要
标签
approved
opengauss-cla/yes
ci-pipeline-success
lgtm-wuyuechuan
lgtm-totaj
关联 Issue
I54Q8H
兼容Mysql ONLY_FULL_GROUP_BY sql mode
Pull Request 合并后将关闭上述关联 Issue
里程碑
未关联里程碑
参与者
(4)
Cherry Pick
选择 Cherry-Pick 代码的目标仓库
opengauss/Plugin
选择要提交 PR 的目标仓库和分支
opengauss/Plugin
master
提交模式
Fast forward
non-Fast forward
提交列表
Commit SHA
Commit Message
Cherry-pick Commit Message
*
取消
Cherry-pick
1
https://gitee.com/opengauss/Plugin.git
git@gitee.com:opengauss/Plugin.git
opengauss
Plugin
Plugin
点此查找更多帮助
搜索帮助
Git 命令在线学习
如何在 Gitee 导入 GitHub 仓库
Git 仓库基础操作
企业版和社区版功能对比
SSH 公钥设置
如何处理代码冲突
仓库体积过大,如何减小?
如何找回被删除的仓库数据
Gitee 产品配额说明
GitHub仓库快速导入Gitee及同步更新
什么是 Release(发行版)
将 PHP 项目自动发布到 packagist.org
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册