September 26, 2024: PostgreSQL 17 Released!
Supported Versions: Current (17) / 16 / 15 / 14 / 13 / 12
Development Versions: devel
Unsupported versions: 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4
This documentation is for an unsupported version of PostgreSQL.
You may want to view the same page for the current version, or one of the other supported versions listed above instead.

IV. Client Interfaces

This part describes the client programming interfaces distributed with PostgreSQL. Each of these chapters can be read independently. Note that there are many other programming interfaces for client programs that are distributed separately and contain their own documentation (Appendix G lists some of the more popular ones). Readers of this part should be familiar with using SQL commands to manipulate and query the database (see Part II) and of course with the programming language that the interface uses.

Table of Contents
30. libpq - C Library
30.1. Database Connection Control Functions
30.2. Connection Status Functions
30.3. Command Execution Functions
30.4. Asynchronous Command Processing
30.5. Cancelling Queries in Progress
30.6. The Fast-Path Interface
30.7. Asynchronous Notification
30.8. Functions Associated with the COPY Command
30.9. Control Functions
30.10. Miscellaneous Functions
30.11. Notice Processing
30.12. Environment Variables
30.13. The Password File
30.14. The Connection Service File
30.15. LDAP Lookup of Connection Parameters
30.16. SSL Support
30.17. Behavior in Threaded Programs
30.18. Building libpq Programs
30.19. Example Programs
31. Large Objects
31.1. Introduction
31.2. Implementation Features
31.3. Client Interfaces
31.4. Server-Side Functions
31.5. Example Program
32. ECPG - Embedded SQL in C
32.1. The Concept
32.2. Connecting to the Database Server
32.3. Closing a Connection
32.4. Running SQL Commands
32.5. Choosing a Connection
32.6. Using Host Variables
32.7. Dynamic SQL
32.8. pgtypes library
32.9. Informix compatibility mode
32.10. Using SQL Descriptor Areas
32.11. Error Handling
32.12. Preprocessor directives
32.13. Processing Embedded SQL Programs
32.14. Library Functions
32.15. Internals
33. The Information Schema
33.1. The Schema
33.2. Data Types
33.3. information_schema_catalog_name
33.4. administrable_role_authorizations
33.5. applicable_roles
33.6. attributes
33.7. check_constraint_routine_usage
33.8. check_constraints
33.9. column_domain_usage
33.10. column_privileges
33.11. column_udt_usage
33.12. columns
33.13. constraint_column_usage
33.14. constraint_table_usage
33.15. data_type_privileges
33.16. domain_constraints
33.17. domain_udt_usage
33.18. domains
33.19. element_types
33.20. enabled_roles
33.21. key_column_usage
33.22. parameters
33.23. referential_constraints
33.24. role_column_grants
33.25. role_routine_grants
33.26. role_table_grants
33.27. role_usage_grants
33.28. routine_privileges
33.29. routines
33.30. schemata
33.31. sequences
33.32. sql_features
33.33. sql_implementation_info
33.34. sql_languages
33.35. sql_packages
33.36. sql_parts
33.37. sql_sizing
33.38. sql_sizing_profiles
33.39. table_constraints
33.40. table_privileges
33.41. tables
33.42. triggers
33.43. usage_privileges
33.44. view_column_usage
33.45. view_routine_usage
33.46. view_table_usage
33.47. views