Chapter 33. libpq — C Library

Table of Contents

33.1. Database Connection Control Functions
33.1.1. Connection Strings
33.1.2. Parameter Key Words
33.2. Connection Status Functions
33.3. Command Execution Functions
33.3.1. Main Functions
33.3.2. Retrieving Query Result Information
33.3.3. Retrieving Other Result Information
33.3.4. Escaping Strings for Inclusion in SQL Commands
33.4. Asynchronous Command Processing
33.5. Retrieving Query Results Row-by-Row
33.6. Canceling Queries in Progress
33.7. The Fast-Path Interface
33.8. Asynchronous Notification
33.9. Functions Associated with the COPY Command
33.9.1. Functions for Sending COPY Data
33.9.2. Functions for Receiving COPY Data
33.9.3. Obsolete Functions for COPY
33.10. Control Functions
33.11. Miscellaneous Functions
33.12. Notice Processing
33.13. Event System
33.13.1. Event Types
33.13.2. Event Callback Procedure
33.13.3. Event Support Functions
33.13.4. Event Example
33.14. Environment Variables
33.15. The Password File
33.16. The Connection Service File
33.17. LDAP Lookup of Connection Parameters
33.18. SSL Support
33.18.1. Client Verification of Server Certificates
33.18.2. Client Certificates
33.18.3. Protection Provided in Different Modes
33.18.4. SSL Client File Usage
33.18.5. SSL Library Initialization
33.19. Behavior in Threaded Programs
33.20. Building libpq Programs
33.21. 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 33.14, Section 33.15 and Section 33.18 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 33.21) 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.