gpt4 book ai didi

你能在 C 中编辑 Postgres ArrayType 吗?

转载 作者:太空宇宙 更新时间:2023-11-04 00:00:52 26 4
gpt4 key购买 nike

我正在尝试编写一个 PostgreSQL 函数并存储一个 ArrayType *state,每次我调用该函数时都需要更改它。每次调用函数时,我是否需要在 construct_array 中使用单独的 Datum 数组,或者我是否可以直接更改状态中的值(即 state[i] = 10)?

谢谢!

最佳答案

我建议你不要直接修改一个ArrayType

因为它是一个varlena,你必须repalloc它并在添加或删除元素时改变值并维护varlena header 和 NULL 位图。您必须使用 dataoffset 并遍历元素。

要么将你的状态保存在一个普通的 C 数组中,并在你需要一个 ArrayType 时使用 construct_array(这可能更便宜而且更好),或者使用函数 array_get_elementarray_set_elementutils/array.h 中的其他对象,用于对 ArrayType 进行操作。

关于你能在 C 中编辑 Postgres ArrayType 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45289471/

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