C PostgreSQL数组结构
存储在内存中的postgres数组的布局是什么?我怎样才能得到真实的数据?C PostgreSQL数组结构,c,arrays,postgresql,C,Arrays,Postgresql,存储在内存中的postgres数组的布局是什么?我怎样才能得到真实的数据? 例如,对于数组[0.1,0.2,0.3]::float8[],实际数据(0.1,0.2,0.3)是否像标准c数组一样存储?我可以使用memcpy复制现有阵列吗?我们得到的指针是否使用了ARR\u DATA\u PTR引用的是真实数据?PostgreSQL使用可变的C结构-因此前n个字节包含固定长度的数据,下一个字节用于数据。前四个字节保存长度、紧跟dimmensions数、dataoffset和元素数据类型标识-下一个数
例如,对于
数组[0.1,0.2,0.3]::float8[]
,实际数据(0.1,0.2,0.3)
是否像标准c数组一样存储?我可以使用memcpy
复制现有阵列吗?我们得到的指针是否使用了ARR\u DATA\u PTR
引用的是真实数据?PostgreSQL使用可变的C结构-因此前n个字节包含固定长度的数据,下一个字节用于数据。前四个字节保存长度、紧跟dimmensions数、dataoffset和元素数据类型标识-下一个数据应该是保存空值的位图,在该位图数据序列化之后
PostgreSQL数组与C数组-resp不兼容。在少数情况下,C数组是PostgreSQL数组的一部分。ARR_DATA_PTR可以或不可以引用真实数据。取决于当前状态-数据应该是烤的,去烤的
在使用pg阵列时,人们通常使用宏和支持函数。解包到C数组或在pg数组上迭代有多种方法。PostgreSQL使用可变的C结构,因此前n个字节包含固定长度的数据,下一个字节用于数据。前四个字节保存长度、紧跟dimmensions数、dataoffset和元素数据类型标识-下一个数据应该是保存空值的位图,在该位图数据序列化之后 PostgreSQL数组与C数组-resp不兼容。在少数情况下,C数组是PostgreSQL数组的一部分。ARR_DATA_PTR可以或不可以引用真实数据。取决于当前状态-数据应该是烤的,去烤的
在使用pg阵列时,人们通常使用宏和支持函数。解包到C数组或在pg数组上迭代有多种方法。有关更好的问题/答案,请参阅