gpt4 book ai didi

c - PostgreSQL 数组结构

转载 作者:太空宇宙 更新时间:2023-11-04 01:12:42 25 4
gpt4 key购买 nike

postgres数组存放在内存中的布局是怎样的?我怎样才能得到真实的数据?例如,对于 array[0.1, 0.2, 0.3]::float8[],真正的数据 (0.1, 0.2, 0.3) 是否像标准 c 数组一样存储?我可以使用 memcpy 复制现有数组吗?我们使用 ARR_DATA_PTR 获取的指针是否指向真实数据?

最佳答案

PostgreSQL 使用可变的 C 结构 - 因此前 n 个字节包含固定长度的数据,接下来的字节用于数据。前四个字节保存长度,后面是维数、数据偏移量和元素数据类型的标识——下一个数据应该是一个包含 NULL 的位图,在位图数据被序列化之后。

PostgreSQL 数组与 C 数组不兼容 - resp。在少数情况下,C 数组是 PostgreSQL 数组的一部分。 ARR_DATA_PTR 可以或不得引用真实数据。取决于当前状态——数据应该被烘烤、去烘烤、……

人们在使用 pg 数组时通常会使用宏和支持函数。有一些方法可以解包为 C 数组或迭代 pg 数组。

关于c - PostgreSQL 数组结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8486685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com