Chapter 29. libpq - C Library

Table of Contents
29.1. Database Connection Control Functions
29.2. Connection Status Functions
29.3. Command Execution Functions
29.3.1. Main Functions
29.3.2. Retrieving Query Result Information
29.3.3. Retrieving Result Information for Other Commands
29.3.4. Escaping Strings for Inclusion in SQL Commands
29.3.5. Escaping Binary Strings for Inclusion in SQL Commands
29.4. Asynchronous Command Processing
29.5. Cancelling Queries in Progress
29.6. The Fast-Path Interface
29.7. Asynchronous Notification
29.8. Functions Associated with the COPY Command
29.8.1. Functions for Sending COPY Data
29.8.2. Functions for Receiving COPY Data
29.8.3. Obsolete Functions for COPY
29.9. Control Functions
29.10. Miscellaneous Functions
29.11. Notice Processing
29.12. Environment Variables
29.13. The Password File
29.14. The Connection Service File
29.15. LDAP Lookup of Connection Parameters
29.16. SSL Support
29.17. Behavior in Threaded Programs
29.18. Building libpq Programs
29.19. 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 29.12 , Section 29.13 and Section 29.16 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 29.19 ) 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.