0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

PG12/GP7操作符+的实现

微云疏影 来源:yzsDBA 作者:yzsDBA 2022-04-07 15:18 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

介绍PostgreSQL12/GeenPlum7的操作符“+”的实现机制。首先以select id1+id2 from t;为例解释其结构体之间的关系。

1、SeqScanState顺序扫描状态结构

pYYBAGJOkCuAYUQ8AALmT_8aCh8976.jpg

SeqScanState为顺序扫描的节点状态结构,内有成员StateState ss:扫描状态信息,该结构有PlanState ps,有用的信息在这里。PlanState ps为计划节点状态结构,内有重要的计算节点信息Plan *plan和条件过滤计算步骤ExprState qual、投影信息ProjectionInfo *ps_ProjInfo。

Plan结构中有2个重要成员链表:targetlist投影信息列表和qual过滤条件列表。这里仅关注投影,因为id1+id2在投影中。targetlist实际上是2个TargetEntry,其中resno表示投影结果位于的结果列序号,resname为结果列名。Expr* expr指向Var结构,表示需要的是哪一列,varattno为用户定义表列的列序号。

接着看投影结构,PlanState中的ps_ProjInfo,内有重要成员ExprState pi_state,表示进行投影计算的步骤描述。pi_state有成员ExprEvalStep steps数组,对表达式计算的步骤描述。本例中有4步,分别为EEOP_SCAN_FETCHSOM、EEOP_SCAN_VAR、EEOP_SCAN_VAR、EEOP_FUNCEXPR_STRICT。由函数ExecInterpExpr执行。

进行+符号计算的步骤是最后一步,其代码如下:

poYBAGJOkCuARnBeAAEwe0FA0aQ264.jpg

可以看到,计算前会对参数进行NULL校验,若由一个参数是NULL,则退出。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 结构
    +关注

    关注

    1

    文章

    119

    浏览量

    22423
  • SQL
    SQL
    +关注

    关注

    1

    文章

    807

    浏览量

    46934
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于TinySwitch-4 TNY288PG12W电源设计解析

    基于TinySwitch-4 TNY288PG12W电源设计解析 一、引言 在电子设备的电源设计领域,高效、可靠且符合各种标准的电源供应至关重要。今天我们来详细探讨一款由Power
    的头像 发表于 04-13 18:30 1116次阅读

    8N3PG10MBKI - 161:多功能LVPECL合成器的技术剖析

    10MBKI-161LF.pdf 一、概述 功能与特点 8N3PG10MBKI - 161可以实现OTN/SONET与以太网之间的速率转换,转换速率可通过引脚选择,一次支持四种速率中的一种。在默认配置
    的头像 发表于 04-13 18:25 1120次阅读

    探索Microchip dsPIC33FJ12GP201/202:高性能16位数字信号控制器

    探索Microchip dsPIC33FJ12GP201/202:高性能16位数字信号控制器 在电子工程师的工具箱中,高性能的数字信号控制器(DSC)是实现复杂控制和信号处理任务的关键组件
    的头像 发表于 04-07 11:00 136次阅读

    海信LED42T29GP说明书

    海信LED42T29GP电路图1
    发表于 03-12 14:49 0次下载

    探索PI7C9X2G312GP:高性能PCIe 2 3 - 端口/12 - 通道数据包交换机

    探索PI7C9X2G312GP:高性能PCIe 2 3 - 端口/12 - 通道数据包交换机 在电子设计领域,PCI Express(PCIe)技术一直是实现高速数据传输和系统连接的关键。今天,我们
    的头像 发表于 02-26 16:35 224次阅读

    C语言指针p、*p、&p、*&p、&*p分别代表什么

    的数据类型。例如,int *p; 定义了一个指向int类型变量的指针变量p。 *p:解引用操作符。它用于访问指针所指向的变量的值。例如,*p = 10; 将10赋值给p所指向的变量。 p:取地址操作符
    发表于 01-07 07:34

    如何在TensorFlow Lite Micro中添加自定义操作符(2)

    上一篇中,小编给大家抽丝剥茧的介绍了在TFLm中实现一个算子所涉及的文件,以及每个文件的具体作用,包括:功能实现,算子解析等。那么本篇就带着大家一起看下注册机制是怎么实现的?我们还是先以
    的头像 发表于 12-26 10:53 1640次阅读

    如何在TensorFlow Lite Micro中添加自定义操作符(1)

    相信大家在部署嵌入式端的AI应用时,一定使用过TensorFlow Lite Micro,以下简称TFLm。TFLm 是专为微控制器和嵌入式设备设计的轻量级机器学习推理框架,它通过模块化的操作符系统
    的头像 发表于 12-26 10:34 5763次阅读

    C语言位操作符

    C 语言位操作符包括按位与( )、按位或(|)、按位异或(^)、按位取反(~)、左移(<<)和右移(>>)。 按位与( ) 只有当两个二进制位
    发表于 11-21 07:52

    AES和SM4算法的可重构分析

    和SM4的算法流程图再贴出来方便对比分析: AES算法流程图 SM4算法流程图 可以看到AES和SM4存在相同的操作符,例如异或、S盒替换、循环左移操作等。其中异或、循环左移操作符在理论上可以
    发表于 10-23 07:26

    rtthread控制STM32L476的PG7 PG8拉高拉低没反应是怎么回事?

    同时配置PB7 PG7 PG让他们三个进行闪灯,发现只有PB7在工作,裸机用CUBMX生成的都能工作…………… 求助!!!!!!!!!!!!!
    发表于 09-29 08:29

    横河GP20温升记录仪外部存储使用方法 实现数据冗余

    横河GP10/GP20便携式无纸记录仪通过内部存储器与外部存储介质结合的方式实现数据冗余,确保测量数据的安全性和可访问性。外部存储介质的具体使用需参考设备接口规格,通常支持USB闪存盘或外部硬盘等常见存储设备,用户可通过触摸屏
    的头像 发表于 09-07 14:54 1046次阅读
    横河<b class='flag-5'>GP</b>20温升记录仪外部存储使用方法 <b class='flag-5'>实现</b>数据冗余

    为什么无法将 PG.12PG.13、PG.14 用作 NUC980 的 GPIO?

    无法将 PG.12PG.13、PG.14 用作 NUC980 的 GPIO
    发表于 08-29 07:52

    linux系统awk特殊字符命令详解

    在Linux系统中,awk 是一种非常强大的文本处理工具,能够对文本数据进行分析、格式化和筛选。利用其内置的特殊字符和操作符,用户可以实现复杂的数据处理任务。以下对一些常见的awk特殊字符和操作符
    的头像 发表于 07-28 16:38 734次阅读

    GP8891CS 的应用指南

    一、应用前提与核心参数适配华众芯微一级代理-粤华信科技供应,GP8891CS适用于输入电压85~265VAC、50/60Hz的交流供电场景,典型应用功率为5W(5V/1000mA),采用SOP7封装
    的头像 发表于 07-28 16:30 1583次阅读
    <b class='flag-5'>GP</b>8891CS 的应用指南