我想知道phoenix中where子句条件的完整生命周期。 where条件的值如何从不同的类和中间值进行解析。 where子句逻辑和扫描对象在代码
中的位置执行命令 从“table_name”中选择ID,NAME,其中salary> = 45678; 要么 从“table_name”中选择ID,SALARY,其中名称为'%abcd%'; 是他们的某种参考。 提前完成。
答案 0 :(得分:0)
您可以在QueryCompiler.compileSingleFlatQuery()函数中查找WhereCompiler.compile(...)
正常选择查询的跟踪路径通常是: -
PhoenixStatement.executeQuery() -> ExecutableSelectStatement.compilePlan() ->
QueryCompiler.compile() -> compileSelect() -> compileSingleQuery()->
compileSingleFlatQuery()
扫描在上下文中设置,并从各种编译器和迭代器移动以正确设置。您可以查找WhereCompiler代码,其中在扫描中推送过滤器。