[发明专利]SQL语句的执行方法、装置、设备和存储介质有效
申请号: | 201911278107.1 | 申请日: | 2019-12-12 |
公开(公告)号: | CN110990423B | 公开(公告)日: | 2023-04-18 |
发明(设计)人: | 刘志勇;张钦;韩朱忠 | 申请(专利权)人: | 上海达梦数据库有限公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F16/2455;G06F16/28 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 孟金喆 |
地址: | 201203 上*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | sql 语句 执行 方法 装置 设备 存储 介质 | ||
1.一种SQL语句的执行方法,其特征在于,包括:
获取SQL语句的原始关系树;
依次判断所述原始关系树中的各原始节点是否为目标过滤节点,并在判定所述原始节点为目标过滤节点时,删除与所述原始节点对应的第一目标节点的第一目标运算条件中包含的至少一个目标列名,以得到新的关系树;
根据所述新的关系树执行所述SQL语句;
其中,所述目标过滤节点的过滤条件中包含常量子表达式且不包含或运算和非运算;与所述原始节点对应的第一目标节点包括所述原始节点的祖先节点中的分组节点,所述第一目标运算条件包含至少列名,所述至少两个列名中存在目标列名,所述目标列名为所述常量子表达式中的常量列列名或所述常量列列名的别名;
所述删除与所述目标过滤节点对应的第一目标节点的第一目标运算条件中包含的至少一个目标列列名,包括:
针对与所述原始节点对应的每一个第一目标节点,如果所述第一目标节点的第一目标运算条件中仅包含目标列名,则选取一个目标列名作为预留列名,并删除所述第一目标运算条件中的非预留列名;如果所述第一目标节点的第一目标运算条件中包含非目标列名,则删除所述第一目标运算条件中的所有目标列名;
在所述删除与所述原始节点对应的第一目标节点的第一目标运算条件中包含的至少一个目标列名之前,还包括:
确定所述原始节点与所述第一目标节点之间不存在全外连接节点,且所述原始节点不为左外连接节点或半连接节点的右孩子;
所述在判定所述原始节点为目标过滤节点时,所述方法还包括:
将与所述原始节点对应的第二目标节点的第二目标运算条件内包含的目标列名替换为所述常量子表达式中的常量,其中,与所述原始节点对应的第二目标节点包括所述原始节点,以及所述原始节点的祖先节点中的结果集投影节点、过滤节点、内连接节点、左外连接节点和半连接节点中的至少一项;所述第二目标运算条件中包含所述目标列名。
2.根据权利要求1任一所述的方法,其特征在于,依次判断所述原始关系树中的各原始节点是否为目标过滤节点,并在判定所述原始节点为目标过滤节点时,删除与所述原始节点对应的第一目标节点的第一目标运算条件中包含的至少一个目标列名,包括:
初始化祖先链表,并选取所述原始关系树的根节点作为当前原始节点;
将所述当前原始节点添加至祖先链表的末尾;
判断所述当前原始节点是否为目标过滤节点;
如果所述当前原始节点为目标过滤节点,则删除与所述当前原始节点对应的第一目标节点的第一目标运算条件中包含的至少一个目标列名,按照先序遍历的顺序选取下一原始节点,将所述下一原始节点确定为当前原始节点,并返回执行将所述当前原始节点添加至祖先链表的末尾的操作,直至不存在下一原始节点为止;
所述方法还包括:
如果所述当前原始节点不为目标过滤节点,则按照先序遍历的顺序选取下一原始节点,将所述下一原始节点确定为当前原始节点,并返回执行将所述当前原始节点添加至祖先链表的末尾的操作,直至不存在下一原始节点为止。
3.根据权利要求2所述的方法,其特征在于,在所述将所述下一原始节点确定为当前原始节点之前,还包括:
如果所述当前原始节点不为所述下一原始节点的父节点,则确定所述当前原始节点与所述下一原始节点的最近公共祖先节点,并删除所述祖先链表中存储的所述当前原始节点以及位于所述当前原始节点和所述最近公共祖先节点之间的其他原始节点。
4.根据权利要求3所述的方法,其特征在于,在所述删除与所述当前原始节点对应的第一目标节点的运算条件中包含的至少一个目标列名之前,还包括:
将所述祖先链表内存储的运算条件包含所述目标列名的分组节点、排序节点和去重节点确定为与所述当前原始节点对应的第一目标节点。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海达梦数据库有限公司,未经上海达梦数据库有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911278107.1/1.html,转载请声明来源钻瓜专利网。