云数据库 GAUSSDB-C语言函数(实验室特性):编写代码

时间:2024-01-23 20:09:06

编写代码

C语言函数的编写需要遵守基本的规则:

  1. 函数声明语法,Datum funcname(PG_FUNCTION_ARGS)。
  2. 申明函数是版本1格式,调用宏PG_FUNCTION_INFO_V1(funcname)。不使用宏则默认为版本0格式。
  3. C文件中声明PG_MODULE_MAGIC,标记数据库的版本信息,防止动态库被加载到一个不兼容的服务器。
  4. 在分配内存时,使用函数palloc和pfree,而不是使用对应的C库函数malloc和free。在每个事务结束是会自动释放通过palloc申请的内存,以免内存泄露。
  5. C文件中定义的符号名不能相互冲突或者与服务器中可执行程序中定义的符号冲突。如果有关于此的编译错误消息,你必须重命名你的函数或者变量。
  6. 开发者应充分了解要调用的内核函数接口功能及入参范围,在调用前应检查参数合法性,避免出现空指针等可能导致程序crash的问题。
  7. 自定义函数上线前应经过充分测试,避免引入问题影响数据库正常业务。
support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0699.html