├─cmake 构建相关
├─data 测试数据
├─libgpdbcost 代价模型
│ ├─include
│ │ └─gpdbcost
│ └─src
├─libgpopt
│ ├─include 头文件
│ │ └─gpopt ...
│ └─src
│ ├─base 实现各种属性(CRange范围操作、CEnfdDistribution、CEnfdOrder排序)
│ ├─cost 空目录
│ ├─engine [*]优化器引擎,主要的入口
│ └─── 1 CPartialPlan:局部计划代价
│ └─── 2 CStatisticsConfig:Implementation of statistics context
│ └─── 3 CEnumeratorConfig:Implementation of plan enumerator config
│ ├─eval Evaluate评估:Constant expression evaluator implementation that delegats to a DXL evaluator
│ ├─mdcache [*]元数据的访问方法(直方图的统计信息、索引信息 、)
│ ├─metadata 表列索引等元数据(CColumnDescriptor、CIndexDescriptor、CName、CPartConstraint、CTableDescriptor)
│ ├─minidump 导出。序列化查询、序列化计划、导出等
│ ├─operators [*]各种逻辑和物理操作符
│ ├─optimizer [*]Optimizer class implementation(PdxlnOptimize:Optimize given query)
│ ├─search [*]定义了CJob、CMemo、CGroup、CScheduler等重要对象,用以支撑整个优化器架构
│ ├─translate DXL与表达式之间的转换
│ └─xforms [*]优化转换(CJoinOrder、CSubqueryHandler)
├─libnaucrates
│ ├─include 头文件
│ │ └─naucrates ...
│ └─src
│ ├─base 对象(OID/BOOL/INT2/INT4/DXLResult)
│ ├─comm 通讯相关,包括:
│ └─── 1 Implementation of communication handler for message exchange between OPT and QD
│ └─── 2 Implementation of socket logging using communicator
│ └─── 3 CCommMessage.h:Descriptor of message exchanged between OPT and QD processes
│ ├─md md表示metadata,即各种数据库可以管理的对象,如database\table\index\column等继承自IMDInterface->CRefCount,主要操作为“序列化”
│ ├─operators [*]DXL tree的各种子类(如CDXLLogicalJoin、CDXLPhysicalMotion)。操作符继承自CDXLOperator->CRefCount,而CRefCount来自"gpos/common/CRefCount.h"。
│ ├─parser 分析器
│ ├─statistics [*]统计信息(包括直方图CHistogram、统计助手CStatisticsUtils)
│ └─xml XML相关处理
├─make 构建/编译
│ └─dependencies
├─patches 一个patch包,使得DOMImplementationList继承了XMemory
├─scripts 测试用例相关的脚本
│ └─log_runner
│ ├─logs
│ └─sql
├─server 单元测试相关
│ ├─include
│ │ └─unittest 单元测试头文件
│ └─src
│ ├─startup 单元测试的main文件
│ └─unittest 单元测试代码
└─targzs 版本与平台(32-bits/64-bits)的配置文件
├─data 测试数据
├─libgpdbcost 代价模型
│ ├─include
│ │ └─gpdbcost
│ └─src
├─libgpopt
│ ├─include 头文件
│ │ └─gpopt ...
│ └─src
│ ├─base 实现各种属性(CRange范围操作、CEnfdDistribution、CEnfdOrder排序)
│ ├─cost 空目录
│ ├─engine [*]优化器引擎,主要的入口
│ └─── 1 CPartialPlan:局部计划代价
│ └─── 2 CStatisticsConfig:Implementation of statistics context
│ └─── 3 CEnumeratorConfig:Implementation of plan enumerator config
│ ├─eval Evaluate评估:Constant expression evaluator implementation that delegats to a DXL evaluator
│ ├─mdcache [*]元数据的访问方法(直方图的统计信息、索引信息 、)
│ ├─metadata 表列索引等元数据(CColumnDescriptor、CIndexDescriptor、CName、CPartConstraint、CTableDescriptor)
│ ├─minidump 导出。序列化查询、序列化计划、导出等
│ ├─operators [*]各种逻辑和物理操作符
│ ├─optimizer [*]Optimizer class implementation(PdxlnOptimize:Optimize given query)
│ ├─search [*]定义了CJob、CMemo、CGroup、CScheduler等重要对象,用以支撑整个优化器架构
│ ├─translate DXL与表达式之间的转换
│ └─xforms [*]优化转换(CJoinOrder、CSubqueryHandler)
├─libnaucrates
│ ├─include 头文件
│ │ └─naucrates ...
│ └─src
│ ├─base 对象(OID/BOOL/INT2/INT4/DXLResult)
│ ├─comm 通讯相关,包括:
│ └─── 1 Implementation of communication handler for message exchange between OPT and QD
│ └─── 2 Implementation of socket logging using communicator
│ └─── 3 CCommMessage.h:Descriptor of message exchanged between OPT and QD processes
│ ├─md md表示metadata,即各种数据库可以管理的对象,如database\table\index\column等继承自IMDInterface->CRefCount,主要操作为“序列化”
│ ├─operators [*]DXL tree的各种子类(如CDXLLogicalJoin、CDXLPhysicalMotion)。操作符继承自CDXLOperator->CRefCount,而CRefCount来自"gpos/common/CRefCount.h"。
│ ├─parser 分析器
│ ├─statistics [*]统计信息(包括直方图CHistogram、统计助手CStatisticsUtils)
│ └─xml XML相关处理
├─make 构建/编译
│ └─dependencies
├─patches 一个patch包,使得DOMImplementationList继承了XMemory
├─scripts 测试用例相关的脚本
│ └─log_runner
│ ├─logs
│ └─sql
├─server 单元测试相关
│ ├─include
│ │ └─unittest 单元测试头文件
│ └─src
│ ├─startup 单元测试的main文件
│ └─unittest 单元测试代码
└─targzs 版本与平台(32-bits/64-bits)的配置文件