Chapter 30. libpq - C Library

Table of Contents
30.1. Database Connection Control Functions
30.2. Connection Status Functions
30.3. Command Execution Functions
30.3.1. Main Functions
30.3.2. Retrieving Query Result Information
30.3.3. Retrieving Result Information for Other Commands
30.3.4. Escaping Strings for Inclusion in SQL Commands
30.3.5. Escaping Binary Strings for Inclusion in SQL Commands
30.4. Asynchronous Command Processing
30.5. Cancelling Queries in Progress
30.6. The Fast-Path Interface
30.7. Asynchronous Notification
30.8. Functions Associated with the COPY Command
30.8.1. Functions for Sending COPY Data
30.8.2. Functions for Receiving COPY Data
30.8.3. Obsolete Functions for COPY
30.9. Control Functions
30.10. Miscellaneous Functions
30.11. Notice Processing
30.12. Event System
30.12.1. Event Types
30.12.2. Event Callback Procedure
30.12.3. Event Support Functions
30.12.4. Event Example
30.13. Environment Variables
30.14. The Password File
30.15. The Connection Service File
30.16. LDAP Lookup of Connection Parameters
30.17. SSL Support
30.17.1. Certificate verification
30.17.2. Client certificates
30.17.3. Protection provided in different modes
30.17.4. SSL File Usage
30.17.5. SSL library initialization
30.18. Behavior in Threaded Programs
30.19. Building libpq Programs
30.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 30.13, Section 30.14 and Section 30.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 30.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.