openGauss源码解析(110)

openGauss源码解析:执行器解析(3)

7.1.3 代码概览

执行器在项目中的源代码路径为:src/gausskernel/runtime。下面是执行器的源码目录。

1) 执行器源码目录

执行器源码目录如表7-1所示。

表7-1 执行器源码目录

模块

功能

Makefile

编译脚本

codegen

计划编译,加速热点代码执行

executor

执行器核心模块,包括表达式计算、数据定义处理以及行级执行算子

vecexecutor

向量化执行引擎

2) 执行器源码文件

执行器源码目录为:src/gausskernel/runtime/模块名。文件如表7-2所示。

表7-2 执行器源码文件

模块名

源码文件

功能

codegen

codegenutil

编译执行辅助工具

executor

执行器

llvmir

llvm表达式生成

vecexecutor

向量化引擎

Makefile

编译配置文件

executor

Makefile

编译配置文件

execAmi.cpp

执行器路由算子

execCurrent.cpp

节点控制

execGrouping.cpp

支持分组、哈希和聚集操作

execJunk.cpp

伪列的支持

execMain.cpp

顶层执行器接口

execMerge.cpp

处理MERGE指令

execProcnode.cpp

分发函数按节点调用相关初始化等函数

execQual.cpp

评估资质和目标列表的表达式

execScan.cpp

通用的关系扫描

execTuples.cpp

元组相关的资源管理

execUtils.cpp

多种执行相关工具函数

functions.cpp

执行SQL语言函数

instrument.cpp

计划执行工具

lightProxy.cpp

轻量级执行代理

nodeAgg.cpp

聚合算子

nodeAppend.cpp

添加算子

nodeBitmapAnd.cpp

位图与算子

nodeBitmapHeapsScan.cpp

位图堆扫描算子

nodeBitmapIndexScan.cpp

位图扫描算子

nodeBitmapOr.cpp

位图或算子

nodeCtescan.cpp

通用表达式扫描算子

...

...

README

说明文件

vecnode/vecagg.cpp

向量聚合算子

vecnode/vecappend.cpp

向量添加算子

vecnode/vecconstraints.cpp

约束检查

vecnode/veccstore.cpp

列存扫描算子

vecnode/veccstoreindexand.cpp

列存索引扫描算子

vecnode/veccstoreindextidscan.cpp

列存tid扫描算子

...

...

vecnode/Readme.md

说明文件

vecprimitive/date.inl

基础数据类型

vecprimitive/float.inl

浮点数据类型

vecprimitive/int4.inl

4字节整数类型

vecprimitive/int8.inl

8字节整数类型

vecprimitive/numeric.inl

数值类型

...

...

vecprimitive/Readme.md

说明文件

vectorsonic/vsonicfilesource.cpp

读写加速

vectorsonic/vsonicchash.cpp

Hash加速

vectorsonic/vsonichashagg.cpp

Hash聚合

vectorsonic/vsonichashjoin.cpp

Hash连接

posted @ 2024-04-30 10:35  openGauss-bot  阅读(33)  评论(0)    收藏  举报