[发明专利]一种谓词表达式树的解析方法、设备及介质在审
申请号: | 202011026967.9 | 申请日: | 2020-09-25 |
公开(公告)号: | CN112230928A | 公开(公告)日: | 2021-01-15 |
发明(设计)人: | 李述鹏 | 申请(专利权)人: | 山东浪潮通软信息科技有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 北京君慧知识产权代理事务所(普通合伙) 11716 | 代理人: | 董延丽 |
地址: | 250101 山东省济*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 谓词 表达式 解析 方法 设备 介质 | ||
1.一种谓词表达式树的解析方法,其特征在于,包括:
确定所述谓词表达式树中的每个子树是否能够进一步取值;
基于能够进一步取值的子树对所述谓词表达式树进行优化处理;
将所述优化处理后的谓词表达式树解析为目标代码。
2.根据权利要求1所述的方法,其特征在于,所述确定所述谓词表达式树中的每个子树是否能够进一步取值,包括:
遍历所述谓词表达式树的每个子树;
基于所述每个子树中的常量,分别对所述每个子树进行判断,确定所述能够进一步取值的子树。
3.根据权利要求2所述的方法,其特征在于,所述分别对所述谓词表达式树中的每个子树进行判断,确定所述能够进一步取值的子树,包括:
按照从下往上的顺序对每个子树进行判断;
若判断子树不能够进一步取值,则该子树对应的父树均不能够进一步取值;
根据判断的结果,确定所述能够进一步取值的子树。
4.根据权利要求1所述的方法,其特征在于,所述基于能够进一步取值的子树对所述谓词表达式树进行优化处理,包括:
将所述能够进一步取值的子树纳入集合中;
遍历所述谓词表达式树的子树,并确定每个子树是否存在于所述集合中;
若是,则根据所述能够进一步取值的子树的取值结果对所述谓词表达式树进行优化处理。
5.根据权利要求4所述的方法,其特征在于,所述根据所述能够进一步取值的子树的取值结果对所述谓词表达式树进行优化处理,包括:
将所述能够进一步取值的子树转换处理为无参数的方法表达式树;
将所述方法表达式树编译后进行动态调用取值,确定能够进一步取值的子树的取值结果;
待所述能够进一步取值的子树全部取值完成后,根据该取值结果对所述谓词表达式树进行优化处理。
6.根据权利要求1所述的方法,其特征在于,所述基于能够进一步取值的子树对所述谓词表达式树进行优化处理,包括:
将所述能够进一步取值的子树缓存;
按照子树缓存的顺序,从后往前依次确定所述能够进一步取值的子树的取值结果;
基于该取值结果对所述谓词表达式树进行实时优化处理,直至所述集合中的子树全部取值完成。
7.根据权利要求1所述的方法,其特征在于,所述将所述优化处理后的谓词表达式树解析为目标代码,包括:
根据优化处理后的谓词表达式树中子树的类型,将相应类型的子树解析为对应的数据库语句和变量参数集。
8.根据权利要求7所述的方法,其特征在于,所述根据优化处理后的谓词表达式树中子树的类型,将相应的子树解析为对应的数据库语句和绑定变量集合,包括:
若所述子树的类型是常量表达式树,则解析为数据库绑定变量占位符和变量值,其中,所述数据库绑定变量占位符属于所述数据库语句,所述变量值属于所述变量参数集;或
若所述子树的类型是成员表达式树,则解析为数据列名,其中,所述数据列名属于所述数据库语句;或
若所述子树的类型是条件表达式树,则解析为条件判断结果表达式,其中,所述条件判断结果表达式属于所述数据库语句;或
若所述子树的类型是一元表达式树,则解析为是/非条件语句,其中,所述是/非条件语句属于所述数据库语句;或
若所述子树的类型是二元表达式树,则解析为比较语句/条件连接语句/四则运算语句,其中,所述比较语句/条件连接语句/四则运算语句属于所述数据库语句;或
若所述子树的类型是方法表达式树,则解析为条件/数值/日期转换语句,其中,所述条件/数值/日期转换语句属于所述数据库语句。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东浪潮通软信息科技有限公司,未经山东浪潮通软信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011026967.9/1.html,转载请声明来源钻瓜专利网。