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

35. libpq — C Library
35.1. Database Connection Control Functions
35.2. Connection Status Functions
35.3. Command Execution Functions
35.4. Asynchronous Command Processing
35.5. Pipeline Mode
35.6. Retrieving Query Results Row-by-Row
35.7. Canceling Queries in Progress
35.8. The Fast-Path Interface
35.9. Asynchronous Notification
35.10. Functions Associated with the COPY Command
35.11. Control Functions
35.12. Miscellaneous Functions
35.13. Notice Processing
35.14. Event System
35.15. Environment Variables
35.16. The Password File
35.17. The Connection Service File
35.18. LDAP Lookup of Connection Parameters
35.19. SSL Support
35.20. Behavior in Threaded Programs
35.21. Building libpq Programs
35.22. Example Programs
36. Large Objects
36.1. Introduction
36.2. Implementation Features
36.3. Client Interfaces
36.4. Server-Side Functions
36.5. Example Program
37. ECPG — Embedded SQL in C
37.1. The Concept
37.2. Managing Database Connections
37.3. Running SQL Commands
37.4. Using Host Variables
37.5. Dynamic SQL
37.6. pgtypes Library
37.7. Using Descriptor Areas
37.8. Error Handling
37.9. Preprocessor Directives
37.10. Processing Embedded SQL Programs
37.11. Library Functions
37.12. Large Objects
37.13. C++ Applications
37.14. Embedded SQL Commands
37.15. Informix Compatibility Mode
37.16. Oracle Compatibility Mode
37.17. Internals
38. The Information Schema
38.1. The Schema
38.2. Data Types
38.3. information_schema_catalog_name
38.4. administrable_role_​authorizations
38.5. applicable_roles
38.6. attributes
38.7. character_sets
38.8. check_constraint_routine_usage
38.9. check_constraints
38.10. collations
38.11. collation_character_set_​applicability
38.12. column_column_usage
38.13. column_domain_usage
38.14. column_options
38.15. column_privileges
38.16. column_udt_usage
38.17. columns
38.18. constraint_column_usage
38.19. constraint_table_usage
38.20. data_type_privileges
38.21. domain_constraints
38.22. domain_udt_usage
38.23. domains
38.24. element_types
38.25. enabled_roles
38.26. foreign_data_wrapper_options
38.27. foreign_data_wrappers
38.28. foreign_server_options
38.29. foreign_servers
38.30. foreign_table_options
38.31. foreign_tables
38.32. key_column_usage
38.33. parameters
38.34. referential_constraints
38.35. role_column_grants
38.36. role_routine_grants
38.37. role_table_grants
38.38. role_udt_grants
38.39. role_usage_grants
38.40. routine_column_usage
38.41. routine_privileges
38.42. routine_routine_usage
38.43. routine_sequence_usage
38.44. routine_table_usage
38.45. routines
38.46. schemata
38.47. sequences
38.48. sql_features
38.49. sql_implementation_info
38.50. sql_parts
38.51. sql_sizing
38.52. table_constraints
38.53. table_privileges
38.54. tables
38.55. transforms
38.56. triggered_update_columns
38.57. triggers
38.58. udt_privileges
38.59. usage_privileges
38.60. user_defined_types
38.61. user_mapping_options
38.62. user_mappings
38.63. view_column_usage
38.64. view_routine_usage
38.65. view_table_usage
38.66. views