PostgreSQL 18 中文参考文档(未翻译部分保留英文)🌐 切换到英文原版 →

39.1. 查询树结构剖析 #

要理解规则系统的工作原理,首先需要明确其调用的时机以及它的输入与输出。 规则系统位于语法解析器(Parser)与查询规划器(Planner)之间。它接收解析器输出的原始查询树(Query Tree),结合用户预先定义的重写规则,计算输出零个或多个经过修改重构的新查询树。

什么是查询树?查询树是 SQL 语句在数据库内核内部的结构化抽象表示。查询树的核心构成部分包括:

命令类型(Command Type)

指示生成该查询树的基础命令类型(如 SELECT、INSERT、UPDATE、DELETE)。

范围表(Range Table)

查询中引用的所有关系表或视图的内部编号索引清单(即 FROM 子句涉及的全部实体)。

结果关系(Result Relation)

对于写入型语句,指向待写入数据的目标表在范围表中的对应条目编号。

目标列表(Target List)

输出列投影表达式清单(即选择列表内容)。

资格条件(Qualification)

布尔过滤表达式(即 WHERE 子句内容)。