Chapter 35. libpq — C Library

Table of Contents

35.1. Database Connection Control Functions
35.1.1. Connection Strings
35.1.2. Parameter Key Words
35.2. Connection Status Functions
35.3. Command Execution Functions
35.3.1. Main Functions
35.3.2. Retrieving Query Result Information
35.3.3. Retrieving Other Result Information
35.3.4. Escaping Strings for Inclusion in SQL Commands
35.4. Asynchronous Command Processing
35.5. Pipeline Mode
35.5.1. Using Pipeline Mode
35.5.2. Functions Associated with Pipeline Mode
35.5.3. When to Use Pipeline Mode
35.6. Retrieving Query Results Row-by-Row
35.7. Canceling Queries in Progress
35.8. The Fast-Path Interface
35.9. Asynchronous Notification
35.10. Functions Associated with the COPY Command
35.10.1. Functions for Sending COPY Data
35.10.2. Functions for Receiving COPY Data
35.10.3. Obsolete Functions for COPY
35.11. Control Functions
35.12. Miscellaneous Functions
35.13. Notice Processing
35.14. Event System
35.14.1. Event Types
35.14.2. Event Callback Procedure
35.14.3. Event Support Functions
35.14.4. Event Example
35.15. Environment Variables
35.16. The Password File
35.17. The Connection Service File
35.18. LDAP Lookup of Connection Parameters
35.19. SSL Support
35.19.1. Client Verification of Server Certificates
35.19.2. Client Certificates
35.19.3. Protection Provided in Different Modes
35.19.4. SSL Client File Usage
35.19.5. SSL Library Initialization
35.20. Behavior in Threaded Programs
35.21. Building libpq Programs
35.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 35.15, Section 35.16 and Section 35.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 35.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.