Chapter 37. libpq — C Library

Table of Contents

37.1. Database Connection Control Functions
37.1.1. Connection Strings
37.1.2. Parameter Key Words
37.2. Connection Status Functions
37.3. Command Execution Functions
37.3.1. Main Functions
37.3.2. Retrieving Query Result Information
37.3.3. Retrieving Other Result Information
37.3.4. Escaping Strings for Inclusion in SQL Commands
37.4. Asynchronous Command Processing
37.5. Pipeline Mode
37.5.1. Using Pipeline Mode
37.5.2. Functions Associated with Pipeline Mode
37.5.3. When to Use Pipeline Mode
37.6. Retrieving Query Results Row-by-Row
37.7. Canceling Queries in Progress
37.8. The Fast-Path Interface
37.9. Asynchronous Notification
37.10. Functions Associated with the COPY Command
37.10.1. Functions for Sending COPY Data
37.10.2. Functions for Receiving COPY Data
37.10.3. Obsolete Functions for COPY
37.11. Control Functions
37.12. Miscellaneous Functions
37.13. Notice Processing
37.14. Event System
37.14.1. Event Types
37.14.2. Event Callback Procedure
37.14.3. Event Support Functions
37.14.4. Event Example
37.15. Environment Variables
37.16. The Password File
37.17. The Connection Service File
37.18. LDAP Lookup of Connection Parameters
37.19. SSL Support
37.19.1. Client Verification of Server Certificates
37.19.2. Client Certificates
37.19.3. Protection Provided in Different Modes
37.19.4. SSL Client File Usage
37.19.5. SSL Library Initialization
37.20. Behavior in Threaded Programs
37.21. Building libpq Programs
37.22. Example Programs

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

libpq is also the underlying engine for several other Postgres Pro 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 37.15, Section 37.16 and Section 37.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 37.22) to show how to write programs that use libpq.

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