Chapter 34. libpq - C Library
Table of Contents
34.1. Database Connection Control Functions : 34.1.1. Connection Strings
[34.1.2. Parameter Key Words](libpq-connect.md#LIBPQ-PARAMKEYWORDS)
34.2. Connection Status Functions
34.3. Command Execution Functions : 34.3.1. Main Functions
[34.3.2. Retrieving Query Result Information](libpq-exec.md#LIBPQ-EXEC-SELECT-INFO)
[34.3.3. Retrieving Other Result Information](libpq-exec.md#LIBPQ-EXEC-NONSELECT)
[34.3.4. Escaping Strings for Inclusion in SQL Commands](libpq-exec.md#LIBPQ-EXEC-ESCAPE-STRING)
34.4. Asynchronous Command Processing
34.5. Retrieving Query Results Row-By-Row
34.6. Canceling Queries in Progress
34.8. Asynchronous Notification
34.9. Functions Associated with the COPY Command : 34.9.1. Functions for Sending COPY Data
[34.9.2. Functions for Receiving `COPY` Data](libpq-copy.md#LIBPQ-COPY-RECEIVE)
[34.9.3. Obsolete Functions for `COPY`](libpq-copy.md#LIBPQ-COPY-DEPRECATED)
34.11. Miscellaneous Functions
34.13. Event System : 34.13.1. Event Types
[34.13.2. Event Callback Procedure](libpq-events.md#LIBPQ-EVENTS-PROC)
[34.13.3. Event Support Functions](libpq-events.md#LIBPQ-EVENTS-FUNCS)
[34.13.4. Event Example](libpq-events.md#LIBPQ-EVENTS-EXAMPLE)
34.16. The Connection Service File
34.17. LDAP Lookup of Connection Parameters
34.18. SSL Support : 34.18.1. Client Verification of Server Certificates
[34.18.2. Client Certificates](libpq-ssl.md#LIBPQ-SSL-CLIENTCERT)
[34.18.3. Protection Provided in Different Modes](libpq-ssl.md#LIBPQ-SSL-PROTECTION)
[34.18.4. SSL Client File Usage](libpq-ssl.md#LIBPQ-SSL-FILEUSAGE)
[34.18.5. SSL Library Initialization](libpq-ssl.md#LIBPQ-SSL-INITIALIZE)
34.19. Behavior in Threaded Programs
34.20. Building libpq 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 34.14, Section 34.15 and Section 34.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 34.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.
