Postgresql关于EOH的使用注意

news2024/10/6 6:50:07

注意通常拿到的指针不是EOH头

EOH是一种扩展数据结构,之前有几篇博客讨论过了,最近在改相关代码加深了一些理解。

EOH目前支持ER_methods、EA_methods两套实现,分别是record类型展开和数组类型展开。

在内存中的样子大概是(EA为例)

typedef struct ExpandedArrayHeader
{
	ExpandedObjectHeader hdr;

	int			ea_magic;

	int			ndims;			/* # of dimensions */
	int		   *dims;			/* array dimensions */
	int		   *lbound;			/* index lower bounds for each dimension */

	Oid			element_type;	/* element type OID */
	int16		typlen;			/* needed info about element datatype */
	bool		typbyval;
	char		typalign;
	...
	...
	...
  • 注意:使用时传的不是指向EOH头部的指针,而是使用hdr->eoh_rw_ptr或hdr->eoh_ro_ptr中存放的指针(指向EOH头部)。
  • 注意eoh_rw_ptr和eoh_ro_ptr是1be结构,用DatumGetEOHP函数取出其中存放的指针。

使用时经常需要一层转换,例如这里:
在这里插入图片描述

注意使用value的逻辑一般都兼容EOH或valena结构

EOH使用EOH_flatten_into后会拉平数据,输出到result中紧凑存放。

一般的处理逻辑都可以适配EOH或这种紧凑形式,无需互相转换。

这就是为什么EOH只有flatten接口,没有生成EOH的接口,因为使用者适配了。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1091252.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

环境下载地址

1. DOTNET环境下载 适用于 Visual Studio 的 .NET SDK 下载 (microsoft.com)https://dotnet.microsoft.com/zh-cn/download/visual-studio-sdks

springboot 智慧图书管理系统

springboot 智慧图书管理系统 liu1113625581

基于springboot实现校园闲置物品租售平台系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现校园闲置物品租售平台系统演示 摘要 在网络发展的时代,众多的软件被开发出来,给用户带来了很大的选择余地,而且人们越来越追求更个性的需求。在这种时代背景下,校园商家只能以用户为导向,以产品的持…

本周 AI 新闻报道:多个大厂发布了重大更新

🔥 Adobe Max大会上,Adobe发布了多项使用AI的新功能。其中最重要的是全新的Firefly Image 2图像生成模型,可以生成逼真的人像;Illustrator中的文本到向量图功能,允许通过文字提示生成可编辑的矢量图形;Prem…

RFID技术助力汽车座椅生产

RFID技术助力汽车座椅生产 现在车企越来越多,各种汽车零部件的生产线也激增。库存管理、质量管理、人为错误记录数据是很多工厂的痛点。借助RFID技术能很好的解决一些问题,作为RFID技术厂家的我们也一直致力于解决客户的问题。在汽车座椅的生产线中加入…

力扣 -- 1035. 不相交的线

解题步骤&#xff1a; 参考代码&#xff1a; class Solution { public:int maxUncrossedLines(vector<int>& nums1, vector<int>& nums2) {int mnums1.size();int nnums2.size();vector<vector<int>> dp(m1,vector<int>(n1));for(int i…

错误代码 0x80070003

前提&#xff1a; A电脑生成的dll 给 B 电脑用&#xff0c; B调用时出现 错误代码&#xff0c; 关闭后可正常使用 解决办法&#xff1a; A电脑动态链接库 修改配置属性 属性—连接器—调试—生成调试信息—生成经过优化以共享和发布的调试信息 (/DEBUG:FULL) 选择这个即可

mssql还原数据库失败

标题: Microsoft SQL Server Management Studio ------------------------------ 服务器 "192.168.31.132" 的 附加数据库 失败。 (Microsoft.SqlServer.Smo) 有关帮助信息&#xff0c;请单击: https://go.microsoft.com/fwlink?ProdNameMicrosoftSQLServer&…

凉鞋的 Unity 笔记 109. 专题一 小结

109. 专题一 小结 在这一篇&#xff0c;我们来对第一个专题做一个小的总结。 到目前为止&#xff0c;大家应该能够感受到此教程的基调。 内容的难度非常简单&#xff0c;接近于零基础的程度&#xff0c;不过通过这些零基础内容所介绍的通识内容其实是笔者好多年的时间一点点…

打造震撼视觉效果,体验全新After Effects 2024 for Mac/win

想要创作令人惊叹、震撼人心的视觉效果吗&#xff1f;那就来尝试全新的After Effects 2024吧&#xff01;After Effects是业界领先的视觉特效和动画软件&#xff0c;为您提供了无限可能性。无论是电影、广告、视频、网站还是应用程序&#xff0c;After Effects都可以帮助您创建…

统信UOS 1060上通过Fail2Ban来Ban IP

原文链接&#xff1a;统信UOS 1060上通过Fail2Ban来Ban IP hello&#xff0c;大家好啊&#xff0c;今天给大家带来一篇在统信UOS 1060上安装Fail2Ban并且当ip被ban后通过邮件发送通知的文章。Fail2Ban 是一个用于防止暴力攻击的开源软件。它可以扫描日志文件&#xff08;例如&a…

深入探索STARK的安全性和可靠性——STARKs全面安全分析

1. 引言 non-interactive STARKs&#xff0c;起源于Interactive Oracle Proofs (IOPs)&#xff0c;然后通过random oracle模式转换为非交互式。StarkWare团队 ethSTARK Documentation – Version 1.2&#xff08;2023年7月&#xff09;论文做了更新&#xff0c;给出了完整具体…

ps提示由于找不到MSVCP140.dll是怎么回事?MSVCP140.dll修复方法

我们的生活和工作都离不开各种软件工具。其中&#xff0c;Adobe Photoshop作为一款专业的图像处理软件&#xff0c;以其强大的功能和广泛的应用领域&#xff0c;受到了广大用户的喜爱。然而&#xff0c;在使用Photoshop的过程中&#xff0c;我们可能会遇到各种问题&#xff0c;…

硬件【11】超全讲解I2C的上拉电阻

文章目录 1.概述2 I2C的上拉电阻3 上拉电阻最小值计算4 上拉电阻最大值计算5 总结 1.概述 相信很多人都清楚&#xff0c;在I2C总线上需要接上拉电阻&#xff1f;但是您针对对I2C上拉电阻足够了解吗&#xff1f;本文带您详细掌握一下I2C的上拉电阻。目录如下&#xff1a; 上拉…

电压放大器在生物医疗中的应用研究

电压放大器是一种常见的电子电路&#xff0c;在生物医疗领域中也得到了广泛应用。其主要作用是将生物信号&#xff08;如心电图、脑电图等&#xff09;转化为电压信号&#xff0c;并将其放大到需要的水平&#xff0c;以便进行分析和处理。 随着生物医学技术的不断发展&#xff…

ARMv7-A 那些事 - 7.栈回溯浅析

By: Ailson Jack Date: 2023.10.14 个人博客&#xff1a;http://www.only2fire.com/ 本文在我博客的地址是&#xff1a;http://www.only2fire.com/archives/159.html&#xff0c;排版更好&#xff0c;便于学习&#xff0c;也可以去我博客逛逛&#xff0c;兴许有你想要的内容呢。…

C++ STL之容器(使用方法)

目录 1. 容器简介2. String2.1 构造操作2.2 赋值操作2.3 常用操作&#xff08;存取字符串、拼接、 查找、替换、比较、插入、删除&#xff09; 3. Vector3.1 构造操作3.2 赋值操作3.3 常用操作&#xff08;大小、 查找、替换、比较、插入、删除&#xff09; 4. Deque4.1 构造操…

Android Studio新建项目教程

Android Studio新建项目教程 一、创建新项目 二、选择空白页项目类型 配置然后finish 等待项目完成初试化 等待初始化结束&#xff0c;创建完成 三、运行创建的APP

统信UOS1060设置自动关机01

原文链接&#xff1a;统信UOS1060设置自动关机01 hello&#xff0c;大家好啊&#xff0c;今天给大家介绍一篇如何在统信UOS 1060上实现自动关机的文章&#xff0c;本篇文章采用两种方式&#xff0c;第一种使用的是crontab定时任务的方式&#xff0c;第二种是使用at命令的方式&a…

frp隧道(流量代理)

代理 代理使用场景 拿下远程web服务器webshell连接不稳定&#xff0c;需要使用稳定的木马程序远程服务器无法直接连接攻击者电脑&#xff08;内网IP&#xff09;需要借助公网vps转发来自失陷服务器的木马流量借助frp服务器&#xff08;vps&#xff09;和客户端&#xff08;内…