FunctionScan算子用于从函数返回的数据集中获取元组,对应的代码源文件是“nodeFunctionScan.cpp”。算子对应的主要函数如表7-18所示。 表7-18 FunctionScan算子主要函数 主要函数 说明 ExecInitFunctionScan 初始化FunctionScan状态节点 ExecFunctionScan 迭代获取元组(函数返回元组) ...
openGauss 是关系型数据库,采用客户端/服务器,单进程多线程架构;支持单机和一主多备部署方式,同时支持备机可读、双机高可用等特性。 从代码结构体系结构的角度来说,oepnGauss 的第一个组成部分是通信管理。 openGauss 查询响应是使用“单个用户对应一个服务器线程”的简单客户端/服务器模型实现的。由于我们无法预先知道...
P2:在此异常事件流中,列大小验证失败,FDW通过ereport实用程序向openGauss报告无效列定义错误。 P3:在此异常事件流中,列类型验证失败,FDW通过ereport实用程序向openGauss报告未支持的特性(feature unsupported)错误。 P4:在此异常事件流中,索引的总键大小超过了最大允许的键大小,FDW通过ereport工具向openGauss报告无效列...
6.执行预测过程时,首先导入对应实例的模板信息,如果不存在该模板信息,则直接报错退出;否则继续检测是否存在该 SQL 语句的粗粒度模板信息,如果不存在,则基于模板相似度计算方法在所有粗粒度模板里面寻找最相似的 N 条模板,之后基于 KNN(K 近邻)算法预测出执行时间;如果存在粗粒度模板,则接着检测是否存在近似的细粒度...
openGauss数据库源码解析系列文章——执行器解析(2.2) 三、执行算子 执行算子模块包含多种计划执行算子,算子类型如表7-4所示,是计划执行的独立单元,用于实现具体的计划动作。执行计划包含4类算子,分别是控制算子、扫描算子、物化算子和连接算子,如表3-1所示。这些算子统一使用节点(node)表示,具有统一的接口,执行流程...
openGauss的优化器是基于代价的优化器,对每条SQL语句生成的多个候选的计划,优化器会计算一个执行代价,最后选择代价最小的计划。 通过统计信息,代价估算系统就可以了解一个表有多少行数据、用了多少个数据页面、某个值出现的频率等,以确定约束条件过滤出的数据占总数据量的比例,即选择率。当一个约束条件确定了选择率...
1.4 代码结构本节从数据库系统通信管理、SQL引擎和存储引擎3个方面对openGauss的代码结构进行介绍。 1.4.1 通信管理openGauss查询响应使用简单的“单一用户对应一个服务器线程”的客户端/服务器模型实现。由于无法…
openGauss数据库源码解析系列文章——执行器解析(2.1) 四、表达式计算 表达式计算对应的代码源文件是“execQual.cpp”,openGauss处理SQL语句中的函数调用、计算式和条件表达式时需要用到表达式计算。 表达式的表示方式和查询计划树的计划节点类似,通过生成表达式计划来对每个表达式节点进行计算。表达式继承层次中的公共根类为...
openGauss作为新一代自治安全数据库,提供了丰富的数据库基础安全能力,并逐步完善各类高阶安全能力。这些安全能力涵盖了访问登录认证、用户权限管理、审计与追溯及数据安全隐私保护等。本章节将围绕openGauss安全机制进行源码解读,以帮助数据库内核开发者在进行内核开发时正确地理解和使用安全功能接口,持续为产品提供安全保护能...
openGauss数据库源码解析系列文章——备份恢复机制:openGauss增量备份技术(下) 上篇图文,我们分享了安全管理源码解析—备份恢复机制:openGauss增量备份技术的部分内容,本篇将继续介绍备份恢复机制:openGauss增量备份技术(下)。10.2.2 gs_probackup… 阅读全文