Chapter 31. libpq - C Library

Table of Contents
31.1. Database Connection Control Functions
31.2. Connection Status Functions
31.3. Command Execution Functions
31.3.1. Main Functions
31.3.2. Retrieving Query Result Information
31.3.3. Retrieving Other Result Information
31.3.4. Escaping Strings for Inclusion in SQL Commands
31.4. Asynchronous Command Processing
31.5. Canceling Queries in Progress
31.6. The Fast-Path Interface
31.7. Asynchronous Notification
31.8. Functions Associated with the COPY Command
31.8.1. Functions for Sending COPY Data
31.8.2. Functions for Receiving COPY Data
31.8.3. Obsolete Functions for COPY
31.9. Control Functions
31.10. Miscellaneous Functions
31.11. Notice Processing
31.12. Event System
31.12.1. Event Types
31.12.2. Event Callback Procedure
31.12.3. Event Support Functions
31.12.4. Event Example
31.13. Environment Variables
31.14. The Password File
31.15. The Connection Service File
31.16. LDAP Lookup of Connection Parameters
31.17. SSL Support
31.17.1. Client Verification of Server Certificates
31.17.2. Client Certificates
31.17.3. Protection Provided in Different Modes
31.17.4. SSL Client File Usage
31.17.5. SSL Library Initialization
31.18. Behavior in Threaded Programs
31.19. Building libpq Programs
31.20. Example Programs

libpq is the C application programmer's interface to PostgreSQL. libpq is a set of library functions that allow client programs to pass queries to the PostgreSQL backend server and to receive the results of these queries.

libpq is also the underlying engine for several other PostgreSQL application interfaces, including those written for C++, Perl, Python, Tcl and ECPG. So some aspects of libpq's behavior will be important to you if you use one of those packages. In particular, Section 31.13, Section 31.14 and Section 31.17 describe behavior that is visible to the user of any application that uses libpq.

Some short programs are included at the end of this chapter (Section 31.20) to show how to write programs that use libpq. There are also several complete examples of libpq applications in the directory src/test/examples in the source code distribution.

Client programs that use libpq must include the header file libpq-fe.h and must link with the libpq library.