最近阅读tidb_query部分的源码现在有几个疑问,渴望能够回答下,谢谢!
我看到expr和rpn_expr都有关于math函数的描述 请问这两个在调用的时候有什么区别
还有这个函数 dispatch_call 主要是在做什么能回答下吗 没有注释很难理解
这个check_arg函数主要是查看当前传递的scalarFuc时候存在以及获取当前rpn_fuc_tree的左右子节点的参数数量吗?
最近阅读tidb_query部分的源码现在有几个疑问,渴望能够回答下,谢谢!
Hi,
我看到expr和rpn_expr都有关于math函数的描述 请问这两个在调用的时候有什么区别
Coprocessor 模块内有两套函数执行框架,一套是 Volcano Model,一套是 Vectorized Model(新),因此函数实现会有两套。目前 Volcano Model 的代码处于逐步弃用并删除的阶段。具体情况可阅读我们的 TiKV 源码解析系列文章中关于 Coprocessor 的三篇:
还有这个函数 dispatch_call 主要是在做什么能回答下吗 没有注释很难理解
它是一个宏,会将里面的内容展开为一系列 match { } 语句,具体怎么展开的可以直接阅读 dispatch_call 宏的实现,或借助 cargo expand 等工具查看展开后的代码。
这个check_arg函数主要是查看当前传递的scalarFuc时候存在以及获取当前rpn_fuc_tree的左右子节点的参数数量吗?
check_args 是 Volcano Model 下用于检查函数参数个数的函数,与 rpn_expr 无关。
好的 谢谢了
感谢回复,选一个最决方案吧,如果有新的问题,可以新开贴哦~
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。