This document describes LIBPQ for OpenVMS I64, a client API and embedded SQL pre-processor utility for PostgreSQL 11.0.
Key Features and Components:
- Provides the C application programmer's interface to PostgreSQL.
- Includes the ECPG embedded SQL pre-processor for developing C/C++ applications.
- Comes with the PSQL interactive query tool.
- A significant update from Sector7 in this release addresses previous limitations on the maximum number of arguments in OpenVMS function calls, allowing queries to return large numbers of columns and null-indicator values.
Requirements:
- OpenVMS 8.4-1H1 I64
- HP TCP/IP Services V5.7 ECO 2 (MultiNet support is unverified)
- HP C V7.3-018 compiler
- Users need a good understanding of OpenVMS, software development, the PostgreSQL client API, and ECPG.
Installation (VSI-I64VMS-LIBPQ-V1100B-0-1.PCSI):
- Installed using the
PRODUCT INSTALL LIBPQ command.
- Critical post-installation steps involve adding lines to
SYS$MANAGER:SYSTARTUP_VMS.COM and SYS$MANAGER:SYSHUTDWN.COM to define necessary logical names (LIBPQ$ROOT, LIBPQ$SHR) and manage startup/shutdown scripts.
- For development, mixed-case symbols in the libraries require the
/NAMES=(AS_IS) compiler option, and header files are located in LIBPQ$ROOT:[INCLUDE].
- While generally not requiring special privileges, a high
BYTLM is recommended for large data transfers.
- Installing to an alternative location requires manually copying startup/shutdown scripts from the new installation's
[.SYS$STARTUP] subdirectory to the system's SYS$STARTUP directory.
Development & Usage:
- Sample applications are provided in
LIBPQ$ROOT:[EXAMPLES] to demonstrate API usage and compilation/linking procedures (using EXAMPLES.COM). These examples typically link with the LIBPQ$SHR shareable image, but static linking (which requires linking SSL) is also possible and may be preferred for production deployments.
- Developers are encouraged to read the official PostgreSQL 11 documentation.
Other Important Notes:
- LIBPQ is built using IEEE floating point; all linked code should also use this format to avoid unexpected results.
- For correct command-line argument parsing with ECPG and PSQL, users should set
process/parse_style=extended or enclose arguments in double quotes.
- The current kit includes all PostgreSQL C/C++ client API and ECPG functionality (including Oracle Pro*C compatibility), with future releases potentially offering wrapper APIs for other languages like COBOL, FORTRAN, Pascal, and BASIC.