在凤凰中解析where子句

时间:2016-01-11 11:25:43

标签: phoenix

我想知道phoenix中where子句条件的完整生命周期。 where条件的值如何从不同的类和中间值进行解析。 where子句逻辑和扫描对象在代码

中的位置

执行命令                  从“table_name”中选择ID,NAME,其中salary> = 45678;                                                              要么                  从“table_name”中选择ID,SALARY,其中名称为'%abcd%';  是他们的某种参考。 提前完成。

1 个答案:

答案 0 :(得分:0)

您可以在QueryCompiler.compileSingleFlatQuery()函数中查找WhereCompiler.compile(...)

正常选择查询的跟踪路径通常是: -

PhoenixStatement.executeQuery() -> ExecutableSelectStatement.compilePlan() ->
QueryCompiler.compile() -> compileSelect() -> compileSingleQuery()->
compileSingleFlatQuery() 

扫描在上下文中设置,并从各种编译器和迭代器移动以正确设置。您可以查找WhereCompiler代码,其中在扫描中推送过滤器。