PostgreSQL 用于查询处理和优化的中间语言是什么?
Which is the intermediate language used by PostgreSQL for query processing and optimization?
我目前正在写一篇关于 PostgreSQL 的论文,但我在任何地方(包括他们的文档)都找不到用于查询处理和优化的中间语言。
没有这样的中间体"language"。
将SQL解析成Node*
的解析树。然后通过查询重写器传递,然后由 planner/optimizer 转换为计划树。您可以使用(记录的)选项 debug_print_parse
、debug_print_rewritten
和 debug_print_plan
.
查看这些树
查看源代码 - 特别是 src/backend/parser/
、src/backend/rewrite
和 src/backend/optimizer/
,以及 src/include/nodes/nodes.h
、plannodes.h
、parsenodes.h
,等。请注意,优化器和解析器源目录中都有 README
个文件。
我目前正在写一篇关于 PostgreSQL 的论文,但我在任何地方(包括他们的文档)都找不到用于查询处理和优化的中间语言。
没有这样的中间体"language"。
将SQL解析成Node*
的解析树。然后通过查询重写器传递,然后由 planner/optimizer 转换为计划树。您可以使用(记录的)选项 debug_print_parse
、debug_print_rewritten
和 debug_print_plan
.
查看源代码 - 特别是 src/backend/parser/
、src/backend/rewrite
和 src/backend/optimizer/
,以及 src/include/nodes/nodes.h
、plannodes.h
、parsenodes.h
,等。请注意,优化器和解析器源目录中都有 README
个文件。