PostgreSQL 中文参考文档
🌐 英文原版 官方 ↗

Chapter 32. libpq:C 语言前端函数库

Table of Contents

32.1. 数据库连接控制函数
32.1.1. 连接字符串
32.1.2. 连接参数关键字
32.2. 连接状态查询函数
32.3. 命令执行函数
32.3.1. 核心执行函数
32.3.2. 获取查询结果信息
32.3.3. 获取其他结果信息
32.3.4. 转义包含在 SQL 命令中的字符串
32.4. 异步命令处理
32.5. 流水线管道模式
32.5.1. 使用流水线模式
32.5.2. 流水线模式相关函数
32.5.3. 何时使用流水线模式
32.6. 分块分批获取查询结果
32.7. 取消正在执行的查询
32.7.1. 发送取消请求的函数
32.7.2. 已过时的取消请求函数
32.8. Fast-Path 快速通道接口
32.9. 异步通知处理
32.10. 与 COPY 命令相关的函数
32.10.1. 发送 COPY 数据的函数
32.10.2. 接收 COPY 数据的函数
32.10.3. 已过时的 COPY 相关函数
32.11. 控制函数
32.12. 其他杂项函数
32.13. Notice 提示消息处理
32.14. 事件系统
32.14.1. 事件类型
32.14.2. 事件回调过程
32.14.3. 事件支持函数
32.14.4. 事件系统示例
32.15. 环境变量
32.16. 口令密码文件
32.17. 连接服务配置文件
32.18. 通过 LDAP 检索连接参数
32.19. SSL 与 TLS 安全支持
32.19.1. 客户端验证服务端证书
32.19.2. 客户端数字证书
32.19.3. 不同 SSL 模式提供的安全保护
32.19.4. 客户端 SSL 文件用途
32.19.5. SSL 库初始化
32.20. OAuth 认证支持
32.20.1. 认证数据钩子
32.20.2. 调试与开发者选项
32.21. 在多线程程序中的并发行为
32.22. 编译构建 libpq 应用程序
32.23. 完整实战示例程序

libpq 是 PostgreSQL 的官方 C 语言应用程序编程接口。它由一组核心函数库构成,允许客户端程序向 PostgreSQL 后台服务端发送 SQL 查询并接收返回的执行结果。

libpq 同样也是多种其他高级语言接口的底层驱动引擎,包括 C++、Perl、Python、Tcl 以及 ECPG 嵌入式 SQL。因此深入掌握 libpq 的运行机制对于使用上述语言库的工程师同样至关重要。特别是 Section 32.15(环境变量)、Section 32.16(口令文件)与 Section 32.19(SSL 加密)中描述的行为适用于任何基于 libpq 构建的客户端应用程序。

本章末尾收录了多个简明实用的完整实战程序(Section 32.23),演示如何编写基于 libpq 的应用程序。此外官方源码分发包的 src/test/examples 目录下还提供了多个开箱即用的完整示例工程。

使用 libpq 的客户端程序必须包含头文件 libpq-fe.h 并在编译时显式链接 -lpq 动态库。