Part 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

33. libpq — C Library
33.1. Database Connection Control Functions
33.2. Connection Status Functions
33.3. Command Execution Functions
33.4. Asynchronous Command Processing
33.5. Retrieving Query Results Row-by-Row
33.6. Canceling Queries in Progress
33.7. The Fast-Path Interface
33.8. Asynchronous Notification
33.9. Functions Associated with the COPY Command
33.10. Control Functions
33.11. Miscellaneous Functions
33.12. Notice Processing
33.13. Event System
33.14. Environment Variables
33.15. The Password File
33.16. The Connection Service File
33.17. LDAP Lookup of Connection Parameters
33.18. SSL Support
33.19. Behavior in Threaded Programs
33.20. Building libpq Programs
33.21. Example Programs
34. Large Objects
34.1. Introduction
34.2. Implementation Features
34.3. Client Interfaces
34.4. Server-Side Functions
34.5. Example Program
35. ECPG — Embedded SQL in C
35.1. The Concept
35.2. Managing Database Connections
35.3. Running SQL Commands
35.4. Using Host Variables
35.5. Dynamic SQL
35.6. pgtypes Library
35.7. Using Descriptor Areas
35.8. Error Handling
35.9. Preprocessor Directives
35.10. Processing Embedded SQL Programs
35.11. Library Functions
35.12. Large Objects
35.13. C++ Applications
35.14. Embedded SQL Commands
35.15. Informix Compatibility Mode
35.16. Oracle Compatibility Mode
35.17. Internals
36. The Information Schema
36.1. The Schema
36.2. Data Types
36.3. information_schema_catalog_name
36.4. administrable_role_​authorizations
36.5. applicable_roles
36.6. attributes
36.7. character_sets
36.8. check_constraint_routine_usage
36.9. check_constraints
36.10. collations
36.11. collation_character_set_​applicability
36.12. column_column_usage
36.13. column_domain_usage
36.14. column_options
36.15. column_privileges
36.16. column_udt_usage
36.17. columns
36.18. constraint_column_usage
36.19. constraint_table_usage
36.20. data_type_privileges
36.21. domain_constraints
36.22. domain_udt_usage
36.23. domains
36.24. element_types
36.25. enabled_roles
36.26. foreign_data_wrapper_options
36.27. foreign_data_wrappers
36.28. foreign_server_options
36.29. foreign_servers
36.30. foreign_table_options
36.31. foreign_tables
36.32. key_column_usage
36.33. parameters
36.34. referential_constraints
36.35. role_column_grants
36.36. role_routine_grants
36.37. role_table_grants
36.38. role_udt_grants
36.39. role_usage_grants
36.40. routine_privileges
36.41. routines
36.42. schemata
36.43. sequences
36.44. sql_features
36.45. sql_implementation_info
36.46. sql_parts
36.47. sql_sizing
36.48. table_constraints
36.49. table_privileges
36.50. tables
36.51. transforms
36.52. triggered_update_columns
36.53. triggers
36.54. udt_privileges
36.55. usage_privileges
36.56. user_defined_types
36.57. user_mapping_options
36.58. user_mappings
36.59. view_column_usage
36.60. view_routine_usage
36.61. view_table_usage
36.62. views