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 H 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
31. libpq - C Library
31.1. Database Connection Control Functions
31.2. Connection Status Functions
31.3. Command Execution Functions
31.4. Asynchronous Command Processing
31.5. Retrieving Query Results Row-By-Row
31.6. Canceling Queries in Progress
31.7. The Fast-Path Interface
31.8. Asynchronous Notification
31.9. Functions Associated with the COPY Command
31.10. Control Functions
31.11. Miscellaneous Functions
31.12. Notice Processing
31.13. Event System
31.14. Environment Variables
31.15. The Password File
31.16. The Connection Service File
31.17. LDAP Lookup of Connection Parameters
31.18. SSL Support
31.19. Behavior in Threaded Programs
31.20. Building libpq Programs
31.21. Example Programs
32. Large Objects
32.1. Introduction
32.2. Implementation Features
32.3. Client Interfaces
32.4. Server-side Functions
32.5. Example Program
33. ECPG - Embedded SQL in C
33.1. The Concept
33.2. Managing Database Connections
33.3. Running SQL Commands
33.4. Using Host Variables
33.5. Dynamic SQL
33.6. pgtypes Library
33.7. Using Descriptor Areas
33.8. Error Handling
33.9. Preprocessor Directives
33.10. Processing Embedded SQL Programs
33.11. Library Functions
33.12. Large Objects
33.13. C++ Applications
33.14. Embedded SQL Commands
33.15. Informix Compatibility Mode
33.16. Internals
34. The Information Schema
34.1. The Schema
34.2. Data Types
34.3. information_schema_catalog_name
34.4. administrable_role_authorizations
34.5. applicable_roles
34.6. attributes
34.7. character_sets
34.8. check_constraint_routine_usage
34.9. check_constraints
34.10. collations
34.11. collation_character_set_applicability
34.12. column_domain_usage
34.13. column_options
34.14. column_privileges
34.15. column_udt_usage
34.16. columns
34.17. constraint_column_usage
34.18. constraint_table_usage
34.19. data_type_privileges
34.20. domain_constraints
34.21. domain_udt_usage
34.22. domains
34.23. element_types
34.24. enabled_roles
34.25. foreign_data_wrapper_options
34.26. foreign_data_wrappers
34.27. foreign_server_options
34.28. foreign_servers
34.29. foreign_table_options
34.30. foreign_tables
34.31. key_column_usage
34.32. parameters
34.33. referential_constraints
34.34. role_column_grants
34.35. role_routine_grants
34.36. role_table_grants
34.37. role_udt_grants
34.38. role_usage_grants
34.39. routine_privileges
34.40. routines
34.41. schemata
34.42. sequences
34.43. sql_features
34.44. sql_implementation_info
34.45. sql_languages
34.46. sql_packages
34.47. sql_parts
34.48. sql_sizing
34.49. sql_sizing_profiles
34.50. table_constraints
34.51. table_privileges
34.52. tables
34.53. transforms
34.54. triggered_update_columns
34.55. triggers
34.56. udt_privileges
34.57. usage_privileges
34.58. user_defined_types
34.59. user_mapping_options
34.60. user_mappings
34.61. view_column_usage
34.62. view_routine_usage
34.63. view_table_usage
34.64. views