openGauss内核计划分析(六):执行生成
SQL语句解析完成后被解析成Query结构,在进行优化时是以Query为单位进行的,Query的优化分为基于规则的逻辑优化(查询重写)和基于代价的物理优化(计划生成),主入口函数为subquery_planner。subquery_planner函数接收Query(查询树),返回一个Plan(计划树)。
subquery_planner函数由函数standard_planner调用,standard_planner函数由exec_simple_query->pg_plan_queries->pg_plan_query->planner函数调用。standard_planner将Query(查询树)生成规划好的语句,可用于执行器实际执行。
仍然以前文的join列子来说明
在planner函数打断点,用gdb查看standard_planner返回的PlannedStmt
将Query规划后得到PlannedStmt


可以看到,Plannedstmt 和explain 执行计划是一致的:
