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连接 |

浙公网安备 33010602011771号