[发明专利]非标准SQL语句的内外连接的转化方法和转化装置有效
申请号: | 201611071273.0 | 申请日: | 2016-11-29 |
公开(公告)号: | CN106708954B | 公开(公告)日: | 2020-03-10 |
发明(设计)人: | 杨永亮 | 申请(专利权)人: | 北京华胜信泰数据技术有限公司;华胜信泰信息产业发展有限公司 |
主分类号: | G06F16/2452 | 分类号: | G06F16/2452 |
代理公司: | 北京友联知识产权代理事务所(普通合伙) 11343 | 代理人: | 尚志峰;汪海屏 |
地址: | 100192 北京市海淀区学*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 非标准 sql 语句 内外 连接 转化 方法 装置 | ||
1.一种非标准SQL语句的内外连接的转化方法,其特征在于,包括:
在非标准SQL语句的语法解析树中的过滤条件树中,查找出所有的第一类型表达式和所有的第二类型表达式,其中,所述第一类型表达式仅包括一个被预设关键字修饰的表,所述第二类型表达式仅包括一个被预设关键字修饰的表和一个未被所述预设关键字修饰的表;
为每个所述第二类型表达式生成连接状态树节点;
将所有的所述连接状态树节点进行合并,得到连接状态树;
将每个所述第一类型表达式链接到所述连接状态树上的所述连接状态树节点的属性中;
根据链接有所述第一类型表达式的连接状态树,对所述语法解析树进行修改,以将所述非标准SQL语句的内连接转化成外连接;
所述将所有的所述连接状态树节点进行合并,得到连接状态树的步骤,包括:
在将所有的所述连接状态树节点中的第一连接状态树节点和其右侧的第二连接状态树节点进行合并时,将所述第一连接状态树节点作为目标节点,所述第二连接状态树节点作为参与节点,判断所述目标节点和所述参与节点是否满足左合并条件或右合并条件;
若所述目标节点和所述参与节点满足所述左合并条件或所述右合并条件,则将所述参与节点向所述目标节点进行合并;
若所述目标节点和所述参与节点不满足所述左合并条件和所述右合并条件,则将所述参与节点更改为第一连接状态树节点,将所述目标节点更改为第二连接状态树节点,判断更改后的目标节点和参与节点是否满足所述左合并条件或所述右合并条件;
若更改后的目标节点和参与节点满足所述左合并条件或所述右合并条件,则将更改后的参与节点向更改后的目标节点进行合并;
若更改后的目标节点和参与节点不满足所述左合并条件和所述右合并条件,则将更改后的目标节点和更改后的参与节点进行空合并。
2.根据权利要求1所述的非标准SQL语句的内外连接的转化方法,其特征在于,
所述连接状态树节点的属性包括:被所述预设关键字修饰的表、未被所述预设关键字修饰的表、被所述预设关键字修饰的表和未被所述预设关键字修饰的表之间的连接条件、所述连接状态树节点的左侧连接状态树节点、所述连接状态树节点的右侧连接状态树节点以及所述左侧连接状态树节点和所述右侧连接状态树节点是否为空连接。
3.根据权利要求2所述的非标准SQL语句的内外连接的转化方法,其特征在于,所述将每个所述第一类型表达式链接到所述连接状态树上的所述连接状态树节点的属性中的步骤,包括:
在所述连接状态树中查找出每个所述第一类型表达式对应的所述连接状态树节点,其中,所述第一类型表达式的被所述预设关键字修饰的表和所述第一类型表达式对应的所述连接状态树节点的被所述预设关键字修饰的表相同;
将每个所述第一类型表达式链接到其对应的所述连接状态树节点的所述连接条件中。
4.根据权利要求1至3中任一项所述的非标准SQL语句的内外连接的转化方法,其特征在于,所述转化方法还包括:
若在所述过滤条件树中,查找出除所述第一类型表达式和所述第二类型表达式之外的其他类型的表达式,且所述其他类型的表达式中包括被所述预设关键字修饰的表,则提示用户出现错误。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京华胜信泰数据技术有限公司;华胜信泰信息产业发展有限公司,未经北京华胜信泰数据技术有限公司;华胜信泰信息产业发展有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611071273.0/1.html,转载请声明来源钻瓜专利网。