Chapter 36. libpq — C Library

Table of Contents

36.1. Database Connection Control Functions
36.1.1. Connection Strings
36.1.2. Parameter Key Words
36.2. Connection Status Functions
36.3. Command Execution Functions
36.3.1. Main Functions
36.3.2. Retrieving Query Result Information
36.3.3. Retrieving Other Result Information
36.3.4. Escaping Strings for Inclusion in SQL Commands
36.4. Asynchronous Command Processing
36.5. Pipeline Mode
36.5.1. Using Pipeline Mode
36.5.2. Functions Associated with Pipeline Mode
36.5.3. When to Use Pipeline Mode
36.6. Retrieving Query Results Row-by-Row
36.7. Canceling Queries in Progress
36.8. The Fast-Path Interface
36.9. Asynchronous Notification
36.10. Functions Associated with the COPY Command
36.10.1. Functions for Sending COPY Data
36.10.2. Functions for Receiving COPY Data
36.10.3. Obsolete Functions for COPY
36.11. Control Functions
36.12. Miscellaneous Functions
36.13. Notice Processing
36.14. Event System
36.14.1. Event Types
36.14.2. Event Callback Procedure
36.14.3. Event Support Functions
36.14.4. Event Example
36.15. Environment Variables
36.16. The Password File
36.17. The Connection Service File
36.18. LDAP Lookup of Connection Parameters
36.19. SSL Support
36.19.1. Client Verification of Server Certificates
36.19.2. Client Certificates
36.19.3. Protection Provided in Different Modes
36.19.4. SSL Client File Usage
36.19.5. SSL Library Initialization
36.20. Behavior in Threaded Programs
36.21. Building libpq Programs
36.22. 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 36.15, Section 36.16 and Section 36.19 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 36.22) 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.