Rust Bindgen入门教程--搞定C的联合、位域与柔性数组
本文详解bindgen处理C语言三大特殊结构:联合(union)、位域(bitfield)和柔性数组(flexible array)。涵盖Rust 1.19+原生union用法、位域的自动getter/setter生成,以及柔性数组的`__IncompleteArrayField`与nightly版DST两种绑定策略,助你安全高效对接C库。
PostgreSQL SQL函数语法详解
本文深入讲解PostgreSQL中SQL语言函数的编写,涵盖参数引用、返回类型(基类型/复合类型/集合)、输出参数、可变参数、默认值、多态函数及排序规则等核心特性,系统阐述其语法、行为与最佳实践。
盘点PostgreSQL C语言自定义函数返回数据集的各种方法
本文介绍在C语言中开发PostgreSQL用户自定义函数时,免去手动创建返回类型的四种方法。核心仍基于SPI查询和SRF返回数据,区别仅在于SQL中声明返回结构的方式。重点推荐`RETURNS TABLE`方式,一步到位、简洁直观,适合绝大多数场景;`CREATE TYPE+SETOF`适用于多函数复用结构;`OUT参数`风格类似TABLE;而`SETOF record`需调用时指定列,使用繁琐,建议仅用于临时测试。四种方法C代码完全相同,只需调整SQL注册语法,新手掌握`RETURNS TABLE`即可高效开发。