Chapter 28. libpq - C Library

Table of Contents
28.1. Database Connection Control Functions
28.2. Connection Status Functions
28.3. Command Execution Functions
28.3.1. Main Functions
28.3.2. Retrieving Query Result Information
28.3.3. Retrieving Result Information for Other Commands
28.3.4. Escaping Strings for Inclusion in SQL Commands
28.3.5. Escaping Binary Strings for Inclusion in SQL Commands
28.4. Asynchronous Command Processing
28.5. Cancelling Queries in Progress
28.6. The Fast-Path Interface
28.7. Asynchronous Notification
28.8. Functions Associated with the COPY Command
28.8.1. Functions for Sending COPY Data
28.8.2. Functions for Receiving COPY Data
28.8.3. Obsolete Functions for COPY
28.9. Control Functions
28.10. Miscellaneous Functions
28.11. Notice Processing
28.12. Environment Variables
28.13. The Password File
28.14. The Connection Service File
28.15. LDAP Lookup of Connection Parameters
28.16. SSL Support
28.17. Behavior in Threaded Programs
28.18. Building libpq Programs
28.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 28.12, Section 28.13 and Section 28.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 28.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.