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

36. libpq — C Library
36.1. Database Connection Control Functions
36.2. Connection Status Functions
36.3. Command Execution Functions
36.4. Asynchronous Command Processing
36.5. Pipeline Mode
36.6. Retrieving Query Results Row-by-Row
36.7. Canceling Queries in Progress
36.8. The Fast-Path Interface
36.9. Asynchronous Notification
36.10. Functions Associated with the COPY Command
36.11. Control Functions
36.12. Miscellaneous Functions
36.13. Notice Processing
36.14. Event System
36.15. Environment Variables
36.16. The Password File
36.17. The Connection Service File
36.18. LDAP Lookup of Connection Parameters
36.19. SSL Support
36.20. Behavior in Threaded Programs
36.21. Building libpq Programs
36.22. Example Programs
37. Large Objects
37.1. Introduction
37.2. Implementation Features
37.3. Client Interfaces
37.4. Server-Side Functions
37.5. Example Program
38. ECPG — Embedded SQL in C
38.1. The Concept
38.2. Managing Database Connections
38.3. Running SQL Commands
38.4. Using Host Variables
38.5. Dynamic SQL
38.6. pgtypes Library
38.7. Using Descriptor Areas
38.8. Error Handling
38.9. Preprocessor Directives
38.10. Processing Embedded SQL Programs
38.11. Library Functions
38.12. Large Objects
38.13. C++ Applications
38.14. Embedded SQL Commands
38.15. Informix Compatibility Mode
38.16. Oracle Compatibility Mode
38.17. Internals
39. The Information Schema
39.1. The Schema
39.2. Data Types
39.3. information_schema_catalog_name
39.4. administrable_role_​authorizations
39.5. applicable_roles
39.6. attributes
39.7. character_sets
39.8. check_constraint_routine_usage
39.9. check_constraints
39.10. collations
39.11. collation_character_set_​applicability
39.12. column_column_usage
39.13. column_domain_usage
39.14. column_options
39.15. column_privileges
39.16. column_udt_usage
39.17. columns
39.18. constraint_column_usage
39.19. constraint_table_usage
39.20. data_type_privileges
39.21. domain_constraints
39.22. domain_udt_usage
39.23. domains
39.24. element_types
39.25. enabled_roles
39.26. foreign_data_wrapper_options
39.27. foreign_data_wrappers
39.28. foreign_server_options
39.29. foreign_servers
39.30. foreign_table_options
39.31. foreign_tables
39.32. key_column_usage
39.33. parameters
39.34. referential_constraints
39.35. role_column_grants
39.36. role_routine_grants
39.37. role_table_grants
39.38. role_udt_grants
39.39. role_usage_grants
39.40. routine_column_usage
39.41. routine_privileges
39.42. routine_routine_usage
39.43. routine_sequence_usage
39.44. routine_table_usage
39.45. routines
39.46. schemata
39.47. sequences
39.48. sql_features
39.49. sql_implementation_info
39.50. sql_parts
39.51. sql_sizing
39.52. table_constraints
39.53. table_privileges
39.54. tables
39.55. transforms
39.56. triggered_update_columns
39.57. triggers
39.58. udt_privileges
39.59. usage_privileges
39.60. user_defined_types
39.61. user_mapping_options
39.62. user_mappings
39.63. view_column_usage
39.64. view_routine_usage
39.65. view_table_usage
39.66. views